PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   PHP mysqli_multi_query liefert keine Ergebnisse (brauche Hilfe) (https://www.php-resource.de/forum/php-developer-forum/106179-php-mysqli_multi_query-liefert-keine-ergebnisse-brauche-hilfe.html)

JOJE 07-03-2018 12:18

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 :dontknow::

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


h3ll 07-03-2018 13:10

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

PHP-Code:

error_reporting(-1);
mysqli_report(MYSQLI_REPORT_ALL); 


chorn 07-03-2018 13:54

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)

JOJE 07-03-2018 15:54

Zitat:

Zitat von chorn (Beitrag 674459)
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
        }


h3ll 07-03-2018 16:49

$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.

JOJE 07-03-2018 20:05

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?:dontknow:

h3ll 08-03-2018 10:38

Zitat:

Zitat von JOJE (Beitrag 674466)
SELECT * muss ich verwenden, da ich ja alle Spalten lesen will.

Nein. Wenn du alle Spalten lesen willst, gib alle im SELECT an.

JOJE 08-03-2018 13:12

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:rolleyes:

h3ll 08-03-2018 13:49

Zitat:

Zitat von JOJE (Beitrag 674473)
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.

JOJE 08-03-2018 14:55

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 :rolleyes:

h3ll 08-03-2018 15:04

Zitat:

Zitat von JOJE (Beitrag 674477)
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:

Zitat von JOJE (Beitrag 674477)
Ich glaube ich frage mal meine Oma nach Hilfe...die ist freundlicher und hilfsbereiter :rolleyes:

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.

JOJE 08-03-2018 17:46

...oder es ist das falsche Forum.

h3ll 08-03-2018 17:56

Zitat:

Zitat von JOJE (Beitrag 674481)
...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.

JOJE 08-03-2018 19:57

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.

h3ll 08-03-2018 20:13

Zitat:

Zitat von JOJE (Beitrag 674483)
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:

Zitat von JOJE (Beitrag 674483)
2. Es geht darum ein Array zu schreiben

Dann lass den ganzen Datenbankquatsch weg, wenn das nichts damit zu tun hat.

Zitat:

Zitat von JOJE (Beitrag 674483)
3. Ist mein Code beispielhaft.

Gerade Beispielcode sollte verständlich und nachvollziehbar sein. Deiner ist es nicht. Ansonsten ist er wertlos.

Zitat:

Zitat von JOJE (Beitrag 674483)
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?


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:26 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG