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

LÖST Array to String conversion?

Rekommendera Poster

Postad (redigerade)
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?

Redigerad av Niss3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Jag vill ha resultatet:

101

103

130

 

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

Redigerad av Niss3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

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.
Redigerad av Niss3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

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 ) )

Redigerad av Niss3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

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 />";

}

Redigerad av Mr Andersson

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

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?

Redigerad av Niss3

Dela detta inlägg


Länk till inlägg
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!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...