Eroare Non-object, Undefined offset la parcurgere date mysql

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
evident
Mesaje:168

Eroare Non-object, Undefined offset la parcurgere date mysql

Salut,
Imi spune si mie cineva unde gresesc?

Cod: Selectaţi tot

$query="SELECT * FROM users where genul='m' AND username!='$username' AND participa_la_vot=1 ORDER BY RAND() LIMIT 0,2";
$result = @mysqli_query($db_conx,$query);

while($row = mysqli_fetch_object($result)) {
    $users[] = (object) $row;
    $av= 'user/'.$users[0]->username.'/'.$users[0]->avatar.'';
    $av1= 'user/'.$users[1]->username.'/'.$users[1]->avatar.'';
    if (!file_exists($av)) {
        $av = 'images/avatardefault.jpg';
    }
    
    if (!file_exists($av1)) {
        $av1 = 'images/avatardefault.jpg';
    }
} 
Imi preia bine avatarul atat pentru linia 0 si pt linia 1 dar primesc doua erori la inceputul pagini
Trying to get property of non-object si Undefined offset: 1
in linia

Cod: Selectaţi tot

$av1= 'user/'.$users[1]->username.'/'.$users[1]->avatar.'';
Multumesc

MarPlo Mesaje:4343
Salut
Cand se parcurg datele cu while(), le ia pe rand; deci, la prima parcurgere exista doar $users[0] cu primul rand, apoi la a doua parcurgere adauga si $users[1].
Solutii sunt mai multe. Poti intai verifica cu: if(isset($users[1])) , ori folosesti acele date dupa ce sunt toate adaugate in $users, dupa whille().
Sau asa (le numeroteaza automat: $av0, $av1, ... oricate ar fi):

Cod: Selectaţi tot

$i = 0;
while($row = mysqli_fetch_object($result)) {
  $users[$i] = (object) $row;
  ${'av'. $i} = file_exists($users[$i]->username. '/'. $users[$i]->avatar) ? $users[$i]->username. '/'. $users[$i]->avatar : 'images/avatardefault.jpg';
  $i++;
} 

var_dump($av0);    // pt verificare  

Subiecte similare