2017-02-24 3 views
0

Ich versuche nur den Maximalwert einer Zeile in meiner Tabelle zu erhalten, dann möchte ich diesen Wert in eine andere Tabelle einfügen, also versuche ich, diesen maximalen Wert zu erhalten , und jedes Mal, wenn ich versuche, etwas damit zu tun, bekomme ich diesen Fehler "illegaler String-Offset".unzulässiger String-Offset beim Versuch, Array-Wert zu erhalten

$qry2= "SELECT MAX(buss_id) FROM businesses"; 
$result= mysqli_query($con,$qry2); 
$maxid = mysqli_fetch_assoc ($result); 

print_r ($maxid); 
foreach($maxid as $individual_data) 
{ 
    //Assign the values 
    $maxx = $individual_data['buss_id']; 
} 

Meine print_r Funktion druckt alles richtig, aber ich kann einfach nicht den Wert greife ich manipulieren müssen. Ich bin ein Anfänger, bitte sei nett. Vielen Dank. Array ([MAX(buss_id)] => 47)

+1

Das Array Schlüssel wird der Spaltenname ist. In diesem Fall lautet der Spaltenname "MAX (bus_id)". Entweder müssen Sie Ihre Abfrage in "SELECT MAX (buss_id) AS buss_id" ändern oder Ihren Code ändern, um den Schlüssel als '$ maxx = $ individual_data ['MAX (buss_id) ']; ' – GordonM

+0

@GordonM Unzulässiger String-Offset' MAX (max_buss_id) ' Miths Antwort funktionierte, obwohl. Danke mann. – Mar1ak

Antwort

2

Versuchen alias

$qry2= "SELECT MAX(buss_id) AS maxid FROM businesses"; 
$result= mysqli_query($con,$qry2); 
$maxid = mysqli_fetch_assoc ($result); 

echo $maxid['maxid']; 
1

Youn sollte eine richtige Alias ​​für den Namen zuweisen, die Sie für den Zugriff auf zB verwenden:

$qry2= "SELECT MAX(buss_id) as buss_id FROM businesses"; 
+0

Danke! Aliasing hat es gelöst. – Mar1ak

+0

@ Mar1ak. gut, wenn meine Antwort nützlich ist (wie andere) könntest du richtig bewerten ... über 15 kannst du den oberen Pfeil nach links benutzen, um auf das Zeichen als nützlich zu antworten – scaisEdge

+0

Fertig. Vielen Dank. – Mar1ak

1

Da Ihre Abfrage SELECT MAX(buss_id) FROM businesses, der resultierende Spaltenname MAX(buss_id) sein wird wie offensichtlich die das print_r Ergebnis du hast geteilt.

Array ([MAX(buss_id)] => 47) 

Sie das resultierende Feldnamen alias haben, wie Sie es wollen:

$qry2 = "SELECT MAX(buss_id) AS max_buss_id FROM businesses"; 
$result = mysqli_query($con,$qry2); 
$maxid = mysqli_fetch_assoc ($result); 

foreach ($maxid as $individual_data) 
{ 
    //Assign the values 
    $maxx = $individual_data['max_buss_id']; 
} 
+0

Dies gab mir immer noch den gleichen Fehler. Miths Antwort funktionierte jedoch. Ihr Vorschlag würde funktionieren, wenn $ individual_data ['max_buss_id']; wurde $ maxid ['max_buss_id']; Ich verstehe es wirklich nicht, da $ individual_data das gleiche wie $ maxid in der foreach-Schleife sein sollte. Aber $ individual_data ['max_buss_id'] funktioniert nicht und $ maxid ['max_buss_id'] funktioniert. Danke für die Antwort! – Mar1ak

+0

@ Mar1ak Hast du die 'AS max_buss_id' in der SQL-Abfrage bemerkt? Du hast es vielleicht vermisst, denke ich. – Jomoos

+0

@Jmoos Ja, ich habe es getan. Auch ich habe gerade meinen ersten Kommentar bearbeitet, ich wollte sagen: miths Antwort. Sie haben alle die gleiche Sache vorgeschlagen, die korrekt ist, aber aus irgendeinem Grund mit der $ Schlüsselvariable foreach AKA $ individual_data in meinem Fall funktioniert nicht. Es ist jedoch keine große Sache. Ich brauche nichts anzufordern, ich habe nur versucht, den Wert einer Variable mit foreach zuzuweisen. Es wurde bereits in Miths Antwort ohne den Einsatz von foreach erreicht. Ich habe darauf hingewiesen, weil es nur komisch ist. – Mar1ak

-1

@ Mar1ak verwenden Sie nur einen Fehler gemacht hast, Ändere $ individual_data ['buss_id'] zu $ individual_data ['max'], weil du in deiner Anfrage max() ohne verwendest jede alias so max() wird mit Spaltennamen max Rückgabewert

$qry2= "SELECT MAX(buss_id) FROM businesses"; 
    $result= mysqli_query($con,$qry2); 
    $maxid = mysqli_fetch_assoc ($result); 

print_r ($maxid); 
foreach($maxid as $individual_data) 
{ 
    //Assign the values 
    $maxx = $individual_data['max'];} 
+0

Das wird immer noch nicht funktionieren. Der Name des Array-Schlüssels ist falsch. – GordonM

+0

was Sie in Ihrem Array bekommen print_r ($ maxid); ? Aktualisiere deine Frage damit –

Verwandte Themen