kostenloser Webspace werbefrei: lima-city


MySQL Spalte 0?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nerdinator

    Kostenloser Webspace von nerdinator, auf Homepage erstellen warten

    nerdinator hat kostenlosen Webspace.

    Moin,

    ich habe folgendes Problem: Ich versuche gerade eine saubere Klasse für MySQL zu schreiben. Inzwischen bin ich auch so weit, dass sich das ganze relativ gut anwenden lässt. Allerdings irritiert mich eine Angabe, wenn ich den Rückgabewert dumpe: Er zeigt mir eine Spalte mit dem titel "0" an. Dies scheint eine fortlaufende Nummer zu sein, angefangen mit 1, 2... und so weiter.

    Mein Problem dabei ist, dass ich in der Tabelle keine Spalte "0" angegeben habe. Habe ich beim erstellen der Table vielleicht einen Fehler gemacht? Oder ist diese Angabe ganz normal und gehört immer dazu?

    Würde mich über kompetente Hilfe freuen.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ohne Code immer schwer was zu erraten ...

    alle anderen Spalten werden korrekt angezeigt?
    evtl einfach die "0" ausschließen

    if ($spalten_name != "0") {
    Ausgabe
    }

    oder

    while($spalten_name > 0) {
    Ausgabe
    }

  4. Autor dieses Themas

    nerdinator

    Kostenloser Webspace von nerdinator, auf Homepage erstellen warten

    nerdinator hat kostenlosen Webspace.

    Es geht ja gar nicht darum, dass mich die 0 jetzt sonderlich stören würde. Ich frage mich halt, woher die kommt - ob ich da einen Fehler gemacht habe, oder ob das ganze prinzipiell "normal" ist. Mag ja sein, dass MySQL sich da irgendwie einen Primärschlüssel oder so ausdenkt, wenn keiner Angegeben wurde. Und der Code ändert an dem Verhalten von MySQL ja nichts. Also im Grunde brauche ich nur ein "Es ist normal" oder ein "Du musst da einen Fehler drin haben". Wie schon gesagt, möchte ich halt nur ein sauberes Array haben, in dem die daten aus der Tabelle stehen.

    Aber für neugierige Augen nochmal den betreffenden Code:
    public function get_sql($sql){
    	$result = array();
    	$response = mysql_query($sql);
    	do{
    		$tmp= mysql_fetch_array($response);
    		if($tmp) $result[] = $tmp;
    	}while($tmp);
    	return $result;
    	}
    Wobei ich grade keinen zugriff auf die aktuelle Version habe - also wo ich die Schleife noch optimiert habe.
  5. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    Wenn ich dich richtig verstehe, dann hast du in $tmp zusätzlich zu den Spaltennamen der Tabelle auch Indizes 0,1,2,3,.. ?!
    Das ist das normale Verhalten von mysql_fetch_array. Wenn du nur die Spaltennamen haben willst, dann kannst du mysql_fetch_assoc stattdessen verwenden.
    Falls das nicht dein Problem ist, gib vl. einfach mal ne Beispielausgabe an.
  6. Autor dieses Themas

    nerdinator

    Kostenloser Webspace von nerdinator, auf Homepage erstellen warten

    nerdinator hat kostenlosen Webspace.

    Exakt das ist es, was ich wissen wollte - dummerweise gleich mit dem Lösungsansatz. Das wollte ich doch selbst herausfinden. :frust:

    Nein, spaß beiseite: Danke, genau darum geht es. $tmp wurde eingeführt, falls mehr als ein Ergebnis vorliegt. So werden alle Ergebnisse in ein mehrdimensionales Array gepackt. Wenn mysql_fetch_assoc(); ebenfalls ein array zurück gibt, ist es exakt das, was ich suche, denke ich.

    Vielen dank - Problem gelöst. Kann meinetwegen geschlossen werden. :)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!