MySQL Probleme mysql_fetch_assoc()

      MySQL Probleme mysql_fetch_assoc()

      Ich bin Kunde bei world4you.at , und is bei der Erstellung meiner MySQL-Datenbank zu Schwierigkeiten mit den MySQL-Befehlen

      [list]mysql_num_fields() [/list]
      [list]mysql_num_rows() [/list]
      [list]mysql_fetch_assoc() [/list]

      gekommen. Wenn ich die Datenbank auf meinem localhost-Server teste, dann funktioniert alles einwandfrei, es kommt keine Fehlermeldung. Doch wenn ich (denselben) Code online auf dem World4you-Server teste, dann werden folgende Fehlermeldungen angezeigt:


      Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /home/.sites/943/site808/web/php/klienten.php on line 29

      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/.sites/943/site808/web/php/klienten.php on line 30

      Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/.sites/943/site808/web/php/klienten.php on line 39



      Nun zeig ich euch den verwendeten Code, welcher die Datensätze aus der Tabelle Klienten in einer übersichtlichen Tabellenform ausgeben soll:
      <?

      $sql = "SELECT * FROM klienten";
      $result = mysql_query($sql);
      $felder = mysql_num_fields($result);
      $datensaetze = mysql_num_rows($result);

      echo "<table border='1' cellspacing='0'>";
      echo "<tr>";
      for ($i = 0; $i < $felder;$i++) {
      $feldname = mysql_field_name($result, $i);
      echo "<th>$feldname</th>";
      }
      echo "</tr>\n";
      while ($row = mysql_fetch_assoc($result)) {
      echo "<tr>";
      foreach ($row as $key => $value) {
      echo "<td>$value&nbsp;</td>";
      }
      echo "</tr>\n";
      }
      echo "</table>\n";
      echo "<p>Anzahl der Datens&auml;tze: <b>$datensaetze</b></p>\n";

      ?>


      Meine Vermutung ist, dass er die $result nicht verarbeiten kann, weil ihm irgendwas nicht passt, aber was genau hab ich keine Ahnung.

      Und damit ihr wisst, wie die Tabelle Klienten ausschaut:


      CREATE TABLE `Klienten` (
      `KlientenNr` INTEGER NOT NULL AUTO_INCREMENT,
      `Anrede` VARCHAR (10),
      `Titel` VARCHAR(20),
      `Vorname` VARCHAR(25),
      `Nachname` VARCHAR(25),
      `Adresse` VARCHAR(30),
      `PLZ` VARCHAR(4),
      `Ort` VARCHAR(20) DEFAULT 'Wien',
      `Geburtsdatum` DATE,
      `KlientSeit` DATE,
      `TelefonNr` VARCHAR(20),
      `GuterTermin` VARCHAR(50),
      `SchlechterTermin` VARCHAR(50),
      `VersicherungsNr` VARCHAR(20),
      PRIMARY KEY (`KlientenNr`)
      ) TYPE=InnoDB;


      Das sind die benutzen Testdatensätze in der Tabelle Klienten:


      DATENSCHUTZ FTW - schon mal davon gehört?


      Woran kann der Fehler liegen? Ich hoffe Ihr könnt mir bei meinem Problem helfen.
      Was mir an Würfelglück mangelt, gleich ich durch das Würfelpech meiner Gegner wieder aus!
      ich hab mir erlaubt deinen beitrag zu ändern....

      und deine art zu coden is ... ja ned die beste :)

      ich post dir heute nacht einen schönen code...

      und w4y is schei.... glaub mir ich hab dort auch kunden (leider)
      Retired "World Rank TOP 10 & S7/S8/S9 Gladiator" World of Warcraft Gamer

      (Na gut - Ich spiel wieder aber nur mehr Casual mit meinem Pally als Tank <3)
      ich würd mal darauf tippen das $result bei dir null ist. Das hab ich meistens dann wenn das SQL statement nicht richtig ist. Damit hast kein Ergebnis von der Abfrage und die num_rows usw. erzeugen fehler.

      Da du aber ein primitives sql statement hast wundert mich das etwas. Ich vermisse ein mysql_connect. Eine Verbindung zur DB is aber schon da oder?
      NAF Regional Tournament Coordinator Austria

      BBAA/WOW Champion Saison 2015/2016
      BBAA/WOW Chaos Cup Champion Saison 2004/2005
      BBAA Chaos Cup Champion Saison 2001/2002
      Wolfencup 2007 - Most TD
      Schnitzelbowl VI - Most TD
      danke bruecki :D

      das schlimme an der ganzen sache ist nämlich, dass diese datenbank unser abschlussprojekt im schwerpunktfach wirtschaftsinformatik ist und unsere professorin keinerlei ahnung von mysql hat, von php weiß sie grad einmal wie ein formular funktioniert :/

      d.h. wenn ich die frag, was da falsch is, sagt sie nur ich soll mir ein buch drüber kaufen oder im internet nachschauen ... bin froh wenn ich die los bin.


      @datenschutz: das sind keine realen informationen, die namen der klienten entsprechen denen der mitglieder meiner projektgruppe und die adressen, telefonnummern und versicherungsnummern sind alle frei erfunden^^

      das haben wir deswegen gemacht, dass wir alles auch testen können. die richtigen klienten die dann reinkommen, werden wir nie erfahren, da unsere projektauftraggeberin der schweigepflicht untersteht und sie die dann selbst eingeben wird.

      EDIT:
      @verbindung: ja die ist da, geht alles einwandfrei (is per include-befehl drin). ich kann die daten in der mysql datenbank auch per php-formularen ohne probleme ändern, nur kann ich sie nicht anzeigen lassen. die einzige möglichkeit sie einzusehen, ist es sie im php-myadmin aufzurufen.

      das komische is ja, dass offline (per xampp und localhost) alles funktioniert, online bei world4you halt nicht :/

      der code, den ich angegeben hab is nur ein auszug aus dem gesamtcode dieses php-dokuments. der rest des dokuments wird einwandfrei angezeigt und funktioniert, nur halt auf der stelle, wo offline die tabelle mit den daten is, kommen diese 3 fehlermeldungen.

      @world4you: ja die sucken wirklich tlw, hab e-mail geschrieben mit fehlerbeschreibung an den tech-support und seit wochen kommt nix.
      Was mir an Würfelglück mangelt, gleich ich durch das Würfelpech meiner Gegner wieder aus!

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „tom0184“ ()

      Mach mal folgendes von dem manual zu fetch_assoc auf dem server und sag was rauskommt:

      $result = mysql_query($sql);

      if (!$result) {
      echo "Anfrage ($sql) konnte nicht ausgeführt werden : " . mysql_error();
      exit;
      }

      if (mysql_num_rows($result) == 0) {
      echo "Keine Zeilen gefunden, nichts auszugeben, daher Abbruch";
      exit;
      }

      ganzes beispiel siehe
      de.php.net/mysql_fetch_assoc
      NAF Regional Tournament Coordinator Austria

      BBAA/WOW Champion Saison 2015/2016
      BBAA/WOW Chaos Cup Champion Saison 2004/2005
      BBAA Chaos Cup Champion Saison 2001/2002
      Wolfencup 2007 - Most TD
      Schnitzelbowl VI - Most TD
      SAUGEIL, JETZT ES GEHT ALLES! :D

      und das arge is, dass alles nur an einem zeichen gelegen hat: und das war, dass ich bei

      SELECT * FROM klienten;

      das "k" von klienten eben klein geschrieben hab, aber das gehört groß geschrieben, da ja die tabelle auch "Klienten" heißt und nicht "klienten" xD

      komischerweise, hat dieser umstand xampp nie gestört, anscheinend is da w4y empfindlicher :D

      dank deinem code juergen bin ich draufgekommen, weil er mir dann auf einmal angeschrieben hat: "Datenbank klienten existiert nicht"^^

      danke an alle für die hilfe bei meinem problem, war genau just in time, am dienstag is die präsentation der ganzen arbeit und da wärs blöd gewesen alles offline zu zeigen :)
      Was mir an Würfelglück mangelt, gleich ich durch das Würfelpech meiner Gegner wieder aus!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tom0184“ ()

      achja, wenn ich grad die möglichkeit habe mit fachleuten zu reden:

      gibt es außer einem affenformular (also eingabe und ergebnis auf einer seite) noch eine andere möglichkeit, dass in einem formular eingebene informationen erhalten bleiben, falls der user auf "OK" klickt und die abfrage im nächsten php-dokument ergibt, dass er nicht alle notwendigen daten eingegeben hat?

      also zB

      formular.php => hier wird eingeben und OK geklickt

      ausgabe.php => hierhin wird weitergeleitet und abgefragt, ob alles richtig eingegeben wurde, wenn das so ist, dann wird ein sql befehl durchgeführt. ansonsten muss man wieder per button zurück zum formular.php und das formular vervollständigen. hier is eben das problem, das man ALLES neu eingeben muss und nicht nur die falschen/vergessenen informationen. und das möchte ich eben vermeiden.
      Was mir an Würfelglück mangelt, gleich ich durch das Würfelpech meiner Gegner wieder aus!
      Original von tom0184
      komischerweise, hat dieser umstand xampp nie gestört, anscheinend is da w4y empfindlicher :D

      lass mich mal raten.... dein xampp läuft unter windows und w4y unter unix?

      merke: windoof schert sich einen dreck um groß/kleinschreibung, unix schon
      NAF Regional Tournament Coordinator Austria

      BBAA/WOW Champion Saison 2015/2016
      BBAA/WOW Chaos Cup Champion Saison 2004/2005
      BBAA Chaos Cup Champion Saison 2001/2002
      Wolfencup 2007 - Most TD
      Schnitzelbowl VI - Most TD
      Original von tom0184
      formular.php => hier wird eingeben und OK geklickt

      ausgabe.php => hierhin wird weitergeleitet und abgefragt, ob alles richtig eingegeben wurde, wenn das so ist, dann wird ein sql befehl durchgeführt. ansonsten muss man wieder per button zurück zum formular.php und das formular vervollständigen. hier is eben das problem, das man ALLES neu eingeben muss und nicht nur die falschen/vergessenen informationen. und das möchte ich eben vermeiden.


      hmmm, ob das notwendig ist?

      Du kannst im form action tag angeben wohin er nach dem senden gehen soll. Mit deiner rückwärtsaction müßtest draus ja wieder eine form machen um die werte zurückzugeben (weil über get aus der url ist ziemlich grauslich)

      die werte hast ja im $_POST/$_GET Array, mußt halt nur wieder im formular eingeben als default wert der z.b textboxen
      NAF Regional Tournament Coordinator Austria

      BBAA/WOW Champion Saison 2015/2016
      BBAA/WOW Chaos Cup Champion Saison 2004/2005
      BBAA Chaos Cup Champion Saison 2001/2002
      Wolfencup 2007 - Most TD
      Schnitzelbowl VI - Most TD
      das wäre dann ja bei diesem textfeld:


      <input type="text" name="Adresse" >


      folgendes array:


      $_POST["Adresse"]


      und wo müsste ich das als default wert in das textfeld einfügen? als value? und wenn ja, kannst mir das als bsp kurz zeigen?

      wie lang bleibt der wert eigentlich als array gespeichert? solange bis ich das browserfenster nicht schließe oder nur bis zur nächsten seite?
      Was mir an Würfelglück mangelt, gleich ich durch das Würfelpech meiner Gegner wieder aus!
      siehe: de.selfhtml.org/navigation/html.htm#formulare

      <input type="text" value="$_POST["Adresse"]"> (so gehts nicht ganz, aber ich denke du verstehst ;) (weiß ja nicht wie du den string zsammbaust)

      solange du die variablen per get/post weitergibst hast du sie verfügbar. Brauchst du sie länger mußt mit sessions arbeiten.
      NAF Regional Tournament Coordinator Austria

      BBAA/WOW Champion Saison 2015/2016
      BBAA/WOW Chaos Cup Champion Saison 2004/2005
      BBAA Chaos Cup Champion Saison 2001/2002
      Wolfencup 2007 - Most TD
      Schnitzelbowl VI - Most TD