Domanda

Una cosa che ha sempre ostacolato me è che al momento del check i miei script PHP per problemi ottengo l'avvertimento "bool-assegnazione: Assegnazione in condizione" e ottengo loro un sacco. per esempio:.

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
    $guests[] = $row['name'];

C'è un modo diverso per ottenere multipli o tutte le righe in un oggetto o un array? O c'è niente di sbagliato in questo metodo?

È stato utile?

Soluzione

prova a fare questo, invece:

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
    $guests[] = $row['name'];

Credo php sta avvertendo a causa del $ row = mysql_fetch_assoc ($ result) non ha restituito un valore booleano.

Altri suggerimenti

In realtà, credo che è di avviso perché si potrebbe fare un errore. Normalmente in un condizionale, hai intenzione di fare:

if (something == something_else)

Ma è facile fare un errore e andare:

if (something = something_else)

Quindi è probabile che si avverte. Se PHP è niente affatto come C, è possibile risolvere il problema con una serie di parentesi attorno sua dichiarazione, in questo modo:

while(($row = mysql_fetch_assoc($result)))

Credo che la risposta di Jeremy è un po 'fuori, perché PHP è liberamente digitato e in genere non perdere tempo con queste distinzioni.

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