PHP MySQL riga successiva - come muoversi puntatore finché funzione controlla vero?

StackOverflow https://stackoverflow.com/questions/2542248

  •  23-09-2019
  •  | 
  •  

Domanda

Ho uno script PHP che prende un valore da una riga nel mio database MySQL, gestisce tramite una funzione, e se si determina è vero restituisce un valore, e se è falso, ha bisogno di andare al prossimo valore il database e verificare che uno fino a quando alla fine si ritorna vero. Penso che ho bisogno di usare mysql_fetch_assoc, ma io non sono davvero sicuro in che modo usarla ... Vorrei poter postare il mio codice per essere più precisi, ma è un sacco di codice e la maggior parte non ha alcuna incidenza sulla questo problema ...

Nessuna soluzione corretta

Altri suggerimenti

È il qualcosa di "funzione" si potrebbe fare nel database invece? E 'molto inefficiente per elaborare ogni riga della tabella per controllare un certo tipo di condizione. Questo è esattamente ciò che i database sono bravi a, vale a dire, l'elaborazione delle query in modo efficiente e ottenere risposte al più presto.

Così mi raccomando guardando come farlo tutti sul lato database in modo che il codice PHP è solo andare a prendere il risultato finale (ossia righe filtrate dalla funzione). Forse, se si forniscono ulteriori dettagli su ciò che il vostro "funzione" sta facendo, può essere fornita una risposta più specifica.

È possibile utilizzare mysql_fetch_array, e solo saltare sui valori recuperato utilizzando $ row [id] e non $ row [ 'name']. Dite la vostra funzione restituisce true, si era appena usare $ row [lastid + 1].

Se l'ID isn `t incrementale, questo potrebbe funzionare:

$qry_result = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_array($qry_result)) {
    $result = yourfunction($row['whatever');
    if ($result != false)
         break;
}

Inoltre v'è una funzione php next () che avanza un puntatore al successivo elemento dell'array. Nella funzione è possibile implementare un costruttore di array, quindi il ciclo tra gli elementi con questo. Dipende da ciò che la vostra funzione realmente fa o scopo script è. Potrebbe portare a un certo carico se ci sono un sacco di risultati.

  1. Non si dovrebbe controllare di database in questo modo, come detto sopra. Database ha una piccola differenza dal file di testo.
  2. Non si dovrebbe avere un campo nel database che ha un sacco di valori separati da valore1: valore2 | valore1: valore2 | valore1: valore2. Deve essere campi separati. Database ha una piccola differenza dal file di testo semplice ed è meglio imparare.

Si potrebbe provare qualcosa di simile:

SELECT *
FROM table
WHERE field NOT LIKE '%$sessionvar:%';

Credo che questo sia quello che cercate?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top