PHP mysqli_multi_query liefert keine Ergebnisse (brauche Hilfe)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP mysqli_multi_query liefert keine Ergebnisse (brauche Hilfe)

    Hallo Leutz,

    ich verzweifle gerade. Ich weiss nicht woran es liegt, aber ich bekomme keinen einzigen Wert aus der Datenbank. Kann mir jemand auf die Sprünge helfen, ich bin arg verzweifelt :

    Code:
    //DATENBANKVERBINDUNGSDATEN
        $user = "xxx";
        $pw = "xxx";
        $host = "localhost";
        $database = "123";
    
    //DATENBANKVERBINDUNG
        $mysqli = new mysqli("$host", "$user", "$pw", "$database");
    
        if ($mysqli->connect_errno) {
           echo '<H3>No connection to MySQL-Server</H3> Reason: '.$mysqli -> connect_error;
           exit();
                                    }
    
    //FOLGENDE TABELLEN SOLLEN ABGERUFEN WERDEN
        $table ="RES_INDEX";
    
        $table100 ="LINKCENTER";
        $table101 ="BASICS";
    
    // ANFRAGE FORMULIEREN UND ZUSAMMENSTELLEN
    $query = "SELECT * FROM $table101;";
    $query .= "SELECT * FROM $table";
    
    // MULTI QUERY AUSFÜHREN
    if (mysqli_multi_query($mysqli,$query))
    {
      do
        {
        // ERGEBNIS SPEICHERN
        if ($result=mysqli_store_result($mysqli)) {
          // ZEILE LESEN
          while ($row=mysqli_fetch_row($result))
            {
           //INHALT LESEN UND IN VARIABLEN SPEICHERN 
           $domain = $row["domain"];
           $HTMLtitel[$lg] =  $row["HTMLtitel[$lg]"];
           //UND SO WEITER 
            }
          
          mysqli_free_result($result);
          }
    
        }
      while (mysqli_next_result($mysqli));
    }
    
    
    
    // VERBINDUNG SCHLIESSEN
    $mysqli->close();

  • #2
    Du solltest das Error-Reporting aufdrehen und ins Error-Log schauen.

    PHP-Code:
    error_reporting(-1);
    mysqli_report(MYSQLI_REPORT_ALL); 

    Kommentar


    • #3
      Also das Script an sich läuft bei mir, ich hab einfach nur ein print_r($row); mit eingebaut und die Daten werden angezeigt. (Auf die Spaltennamen habe ich dabei nicht geachtet)

      Kommentar


      • #4
        Zitat von chorn Beitrag anzeigen
        Also das Script an sich läuft bei mir, ich hab einfach nur ein print_r($row); mit eingebaut und die Daten werden angezeigt. (Auf die Spaltennamen habe ich dabei nicht geachtet)
        Also, da muss ich Dir recht geben. Mit dem Einbau print_r($row); konnte ich das reproduzieren. Dann bleibt noch die Frage:

        Warum werden die abgefragten Werte nicht in die vorgesehenen Variablen geschrieben?

        Derzeit ist es so und offenbar gibt es Probleme mit den Variablen in den Klammern [&lg] und der Spaltennamen (Ich glaube ihr nennt das Index) wird nicht erkannt:

        Code:
              // ZEILE LESEN
              while ($row=mysqli_fetch_row($result))
                {
               //INHALT LESEN UND IN VARIABLEN SPEICHERN
               $domain = $row["domain"];
               $HTMLtitel[$lg] =  $row["HTMLtitel[$lg]"];
        
               //UND SO WEITER
                }
        Zuletzt geändert von JOJE; 07.03.2018, 15:59.

        Kommentar


        • #5
          $row["HTMLtitel[$lg]"] sieht irgendwie komisch aus.

          Du solltest übrigens kein SELECT * verwenden, sondern im SELECT immer die Spalten angeben, die du im Ergebnis erwartest.

          Kommentar


          • #6
            SELECT * muss ich verwenden, da ich ja alle Spalten lesen will. Ja $row["HTMLtitel[$lg]"] geht auch mit ohne Gänsefuesschen $row['HTMLtitel[$lg]'] ... oder was meintest Du?

            Kommentar


            • #7
              Zitat von JOJE Beitrag anzeigen
              SELECT * muss ich verwenden, da ich ja alle Spalten lesen will.
              Nein. Wenn du alle Spalten lesen willst, gib alle im SELECT an.

              Kommentar


              • #8
                Das SELECT ist aber hier nicht das Problem.

                Ursprünglich habe ich das Auslesen der Tabelle und Speichern in Variablen imer so gemacht:

                Code:
                  $result = mysql_query("SELECT * FROM $table");
                
                  $METAdescript[$lg] = mysql_result($result,0,"METAdescript[$lg]");
                Aber mir fällt absolut keine mysqli-Alternative ein. Für etwas Hilfe wäre ich dankbar

                Kommentar


                • #9
                  Zitat von JOJE Beitrag anzeigen
                  Das SELECT ist aber hier nicht das Problem.
                  Es macht es aber auch nicht unbedingt einfacher. Eher unnötig schwierig.

                  Also wenn du Hilfe willst bitte alle Spalten ins SELECT schreiben, ansonsten ist der Code nicht nachvollziehbar.

                  Kommentar


                  • #10
                    Ich soll nun also ca. 220 Spaltennamen statt * hier ins Forum schreiben damit es übersichtlicher wird........warte......

                    Ich glaube ich frage mal meine Oma nach Hilfe...die ist freundlicher und hilfsbereiter

                    Kommentar


                    • #11
                      Zitat von JOJE Beitrag anzeigen
                      Ich soll nun also ca. 220 Spaltennamen statt * hier ins Forum schreiben damit es übersichtlicher wird........warte......
                      Vielleicht sind das eigentliche Problem die Tabellen? 220 Spalten klingen schon arg viel. Ich würde da eher auf ein fehlerhaftes Tabellendesign tippen.

                      Zitat von JOJE Beitrag anzeigen
                      Ich glaube ich frage mal meine Oma nach Hilfe...die ist freundlicher und hilfsbereiter
                      Nachdem DU Hilfe willst, solltest auch DU die Arbeit machen, und nicht andere. Du verstehst unter "Hilfe" wohl anderes, als in einem Programmierforum üblich ist.

                      Kommentar


                      • #12
                        ...oder es ist das falsche Forum.

                        Kommentar


                        • #13
                          Zitat von JOJE Beitrag anzeigen
                          ...oder es ist das falsche Forum.
                          Wenn du nicht das machen willst, was man dir rät, ist wohl so ziemlich jedes andere Programmierforum auch das falsche Forum.

                          Kommentar


                          • #14
                            Also zunächsteinmal hilft es niemandem, wenn Du Dich aufblähst.

                            1. Das SELECT funktioniert auch mit *.
                            2. Es geht darum ein Array zu schreiben
                            3. Ist mein Code beispielhaft.

                            Es reicht wenn eine Spalte mit einem Wert beispielhaft erklärt wird. Ich suche eine mysqli-Alternative für:

                            Code:
                              $METAdescript[$lg] = mysql_result($result,0,"METAdescript[$lg]");
                            Also bitte lösungsorientierte Vorschläge. Ansonsten einfach mal besser nix schreiben.

                            Kommentar


                            • #15
                              Zitat von JOJE Beitrag anzeigen
                              1. Das SELECT funktioniert auch mit *.
                              Es macht Code schlechter nachvollziehbar und ermöglicht diverse Fehlerquellen. Und es ist vor allem nicht dann hilfreich, wenn ein Fehler gesucht wird.

                              Zitat von JOJE Beitrag anzeigen
                              2. Es geht darum ein Array zu schreiben
                              Dann lass den ganzen Datenbankquatsch weg, wenn das nichts damit zu tun hat.

                              Zitat von JOJE Beitrag anzeigen
                              3. Ist mein Code beispielhaft.
                              Gerade Beispielcode sollte verständlich und nachvollziehbar sein. Deiner ist es nicht. Ansonsten ist er wertlos.

                              Zitat von JOJE Beitrag anzeigen
                              Es reicht wenn eine Spalte mit einem Wert beispielhaft erklärt wird. Ich suche eine mysqli-Alternative für:

                              Code:
                                $METAdescript[$lg] = mysql_result($result,0,"METAdescript[$lg]");
                              PHP-Code:
                              mysqli_data_seek($result0);
                              $METAdescript[$lg] = mysqli_fetch_assoc($result)['METAdescript[' $lg ']']; 
                              Aber das ist halt großer Käse. Willst du Programmieren lernen oder willst du lernen wie man Blödsinn macht?

                              Kommentar

                              Lädt...
                              X