Just nu i M3-nätverket
Gå till innehåll

Array to String conversion?


Niss3

Rekommendera Poster

Notice: Array to string conversion

Hej!

 

Jag försöker hämta data från min MySQL databas och sedan printa ut det, bara för övningens skull.

 

Tidigare har jag inte haft problem, men denna gången får jag detta problem.

$xtime = mysqli_query($opendb, "SELECT idgame FROM levelcap WHERE level='4'")
or die(mysqli_error($opendb));

while($xtimex = mysqli_fetch_array($xtime)){
$timex[] = $xtimex;
}
print_r(array_values($timex));
print($timex[0]);

Print_r skriver ut:

Array ( [0] => Array ( [0] => 101 [idgame] => 101 ) [1] => Array ( [0] => 103 [idgame] => 103 ) [2] => Array ( [0] => 130 [idgame] => 130 ) ) 

Men print ger felmeddelandet:

Notice: Array to string conversion in

Jag har försökt skriva ut varje array på en rad var med olika while, for, foreach satser, men jag får hela tiden samma felmeddelande. "array to string conversion".

 

Försökte också med en buffert:

$temp_time = $timex[0];

print($temp_time);

Men det hjälpte inte heller..

 

Vad är det jag gör för fel?

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Print kan bara skriva ut innehållet i strängar.

 

Vilket resultat vill du ha ut?

Länk till kommentar
Dela på andra webbplatser

Jag vill ha resultatet:

101

103

130

 

Är det för att $timex har en array i varje array jag har problem?

Länk till kommentar
Dela på andra webbplatser

Tack Mr Andersson.

 

Jag var precis inne och provade något i stil med:

$ix = 0;
while($xtimex = mysqli_fetch_array($xtime)){
$timex[] = $xtimex[$ix];
echo $timex[$ix] . "<br />";
$ix++;
}
 
Jag misstänker att det var just att det var arrays sparade i arrays som krånglade till det för mig.
Länk till kommentar
Dela på andra webbplatser

Jag är fortfarande lite förvirrad.

 

Nu fungerar print loopen, men nu vill jag istället göra en vanlig array med 101, 103, 130 innuti och sedan printa den "vanliga" arrayen.

$ix = 0;
Foreach ($timex as $t) {
$timeid[$ix] = array($t['idgame']);
$ix++;
} 

Foreach ($timeid as $tt) {
Print($tt);
echo "<br />";
} 

Det verkar som att jag har samma problem nu igen.

 

I timeid är det sparat hela array fält och inte bara värdena.

Istället för $timeid(101,103,130); så är det $timeid(Array( [0] => Array ( [0] => 101 ) [1] => Array ( [0] => 103 ) [2] => Array ( [0] => 130 ) )

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

I din första loop skriver du över $timeid varje gång, du behöver [] om du vill lägga till fler poster i en array.

 

Men även då blir det fel eftersom du kommer få tre poster i arrayen med en ny array i varje, dvs samma sak som du redan har.

 

Detta bör funka:

Foreach ($timex as $t) {

$timeid[] = $t['idgame'];

}

 

Foreach ($timeid as $tt) {

Print($tt);

echo "<br />";

}

Länk till kommentar
Dela på andra webbplatser

I din första loop skriver du över $timeid varje gång, du behöver [] om du vill lägga till fler poster i en array.

 

Men även då blir det fel eftersom du kommer få tre poster i arrayen med en ny array i varje, dvs samma sak som du redan har.

 

Detta bör funka:

Foreach ($timex as $t) {

$timeid[] = $t['idgame'];

}

 

Foreach ($timeid as $tt) {

Print($tt);

echo "<br />";

}

 

Sista värdet som lagras i $tt är 130.

Hur kan jag ändra på koden så att alla värdena sparas i $tt så jag kan hämta dem senare?

 

Jag hade önskat att $tt innehöll alla 3 värdena efter att for-satsen är färdig.

 

-edit-

 

Haha, det är ju precis så $timeid är nu. $timeid[0] ger 101. Varför har det inte fungerar för mig förrens nu?

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Vad menar du? Alla värdena finns i arrayen $timeid. $tt innehåller endast aktuell sträng.

 

på vilket sätt vill du ha in alla värden i $tt ?

Länk till kommentar
Dela på andra webbplatser

Vad menar du? Alla värdena finns i arrayen $timeid. $tt innehåller endast aktuell sträng.

 

på vilket sätt vill du ha in alla värden i $tt ?

 

Jag menar att det bästa svaret du gav mig var:

 

Foreach ($timex as $t) {

$timeid[] = $t['idgame'];

}

 

Nu förstår jag koden bättre, tackar så mycket!

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Varför har det inte fungerar för mig förrens nu?

För att vi nyss skrev kod som skapar den arrayen ... :)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...