MySQL Datenbank auslesen via PHP

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

  • MySQL Datenbank auslesen via PHP

    Hallo liebe Community,

    ich versuche gerade eine MySQL-Tabelle mit PHP auszulesen, allerdings spuckt das Ganze nichts aus...
    Vielleicht könnt ihr mir auf die Sprünge helfen, manchmal sieht man ja bekannterweise den Wald vor lauter Bäumen nicht - danke schonmal!

    Hier der Inhalt der index.php:

    PHP-Code:
    <?php
    $db 
    = @new mysqli('***''***''***''***');
    if (
    mysqli_connect_errno()) {
        die (
    'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
    }
    $sql 'SELECT *
    FROM
        users'
    ;
    $result $db->query($sql);
    if (!
    $result) {
        die (
    'Etwas stimmte mit dem Query nicht: '.$db->error);
    }
    echo 
    'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n";
    ?>
    Auch mit dem Folgenden habe ich es probiert:
    PHP-Code:
    <?php
    $db 
    = @new mysqli('***''***''***''***');
    if (
    mysqli_connect_errno()) {
        die (
    'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
    }
    $sql 'SELECT
       *UserID,
        UserName,
        UserMail
    FROM
        users'
    ;
    $result $db->query($sql);
    if (!
    $result) {
        die (
    'Etwas stimmte mit dem Query nicht: '.$db->error);
    }
    echo 
    'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n";
    ?>
    Das einzige Ergebnis ist dies:
    "Die Ergebnistabelle besitzt 1 Datensätze"

    LG

  • #2
    Hi.

    Mit num_rows fragst Du ja auch die Anzahl ab. Hier siehst Du, wie du mit mysli_query arbeitest:

    PHP: mysqli::query - Manual

    und

    PHP: mysqli_result::fetch_array - Manual

    streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Danke für Deine Hilfe, das habe ich nun hingekriegt.

      Aber jetzt habe ich noch ein anderes Problem, bei dem ich noch keine Lösung gefunden habe.

      Ich möchte für einen Adminbereich die Zugangsberechtigung so ändern, dass nur der User mit der UserID=1 diesen aufrufen kann. Folgdendes habe ich probiert:

      PHP-Code:
      if ($userid 1) {

          
      Header("Location: login.php");
          exit(); 

      Die Variable ist definiert, der Nutzer mit userid=1 auch vorhanden, aber auch userid=2 hat Zugang - funktioniert das überhaupt so, wie ich es mir vorstelle?

      Bin für jeden Tipp / jede Hilfe / jeden Link dankbar!

      LG

      Kommentar


      • #4
        Hallo,

        du musst zwischen Vergleich und Zuweisung streng unterscheiden.
        PHP-Code:
        $userid 
        setzt den Inhalt der Variable auf 1.
        PHP-Code:
        $userid == 
        dagegen vergleicht die beiden Werte

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Stimmt, darüber habe ich mir schon Gedanken gemacht, aber auch mit

          PHP-Code:
          $userid == 
          [COLOR=#000000][COLOR=#0000CC][/COLOR][COLOR=#006600][/COLOR][COLOR=#0000CC]

          [FONT=Verdana][COLOR=Black]hat userid=2 Zugriff. Der Fehler muss also woanders liegen.

          Hier mal der obere Teil aus meiner index.php

          [/COLOR][/FONT][/COLOR][/COLOR]
          PHP-Code:
          <?php
          session_start
          ();

                  
          $db_link mysql_connect ("localhost""root""");

                  
          $db_sel mysql_select_db"gld" )
                     or die(
          "Auswahl der Datenbank fehlgeschlagen");    

                     
          $sql "SELECT UserID
                      FROM users
                      WHERE UserSession='"
          .session_id()."'";
                     
          $db_erg mysql_query$sql );
                      if ( ! 
          $db_erg )
                      {
                            die(
          'Ungültige Abfrage: ' mysql_error());
                      }
                     while (
          $zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
                  {
                          
          $userid $zeile['UserID'];
                  }
              echo
          "<p />";
              
          if(
          $userid == 1) {

              
          Header("Location: login.php");
              exit(); 

          else {
          Das geht sicherlich auch schöner... Habe ich da vielleicht einen Denkfehler??

          Danke

          Kommentar


          • #6
            Warum speicherst du die User ID nicht einfach in der Session? Wozu der Umweg über die Datenbank?

            Kommentar


            • #7
              @h3ll
              Ich habe die Variable nun in der Session gespeichert, aber trotzdem erfolgt keine Änderung.

              Mit
              PHP-Code:
              <?php echo $userid ?>
              wird mir die korrekte ID angezeigt, doch die Abfrage

              PHP-Code:
              if ($userid == 1) {

                  
              Header("Location: login.php");
                  exit(); 

              liefert nicht das, was sie soll, eben dass man mit ID=2 nicht durch kommt.

              Noch jemand Lösungsansätze für mich?

              Kommentar


              • #8
                Dein Code sagt, dass User mit der ID 1 auf login.php weitergeleitet werden. Mal davon abgesehen, dass du keine absolute URL angibst (was nämlich falsch ist), ist das so korrekt?

                Kommentar


                • #9
                  Danke, das war wohl der entscheidende Hinweis. Ich habe die Abfrage falsch herum gestellt, sodass jeder den Inhalt sehen konnte. Was mich dabei allerdings wundert, auch mit ID=1 wurde alles angezeigt?

                  Nunja, danke ^^ Ich sollte einfach die Augen genauer aufmachen =)

                  Kommentar


                  • #10
                    Ich brauche nochmal Eure Hilfe.

                    Und zwar möchte ich die ausgelesenen Tabellen der MySQL-Datenbank per PHP bearbeiten. Folgendes habe ich mir überlegt:

                    - jede Zeile erhält eine Checkbox und am Ende kann man alle markierten Datensätze "bearbeiten" also einer UserID zuordnen

                    Dazu dieser Code:

                    PHP-Code:
                    echo '<table border="0" width="100%">';
                      echo 
                    "<tr>";
                      echo 
                    "<td><b>Auswahl</b></td>";
                      echo 
                    "<td><b>IP</b></td>";
                      echo 
                    "<td><b>Absender</b></td>";
                      echo 
                    "<td><b>Empfänger</b></td>";
                      echo 
                    "<td><b>Erste</b></td>";
                      echo 
                    "<td><b>Letzte</b></td>";
                      echo 
                    "<td><b>Anzahl</b></td>";
                      echo 
                    "</tr>";
                      echo 
                    "<tr>";
                     
                      while (
                    $zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
                    {
                      echo 
                    "<td><form method='POST' action='zuordnen.php'>
                              <input type='checkbox' name='zuordnen[]' value='an'></td>"
                    ;
                      echo 
                    "<td>"$zeile['ip'] . "</td>";
                      echo 
                    "<td>"$zeile['sender'] . "</td>";
                      echo 
                    "<td>"$zeile['recipient'] . "</td>";
                      echo 
                    "<td>"$zeile['first'] . "</td>";
                      echo 
                    "<td>"$zeile['last'] . "</td>";
                      echo 
                    "<td>"$zeile['n'] . "</td>";
                      echo 
                    "<td>"$zeile['UserID'] . "</td>";
                      echo 
                    "</tr>";
                    }

                    echo 
                    "</table>";
                    echo 
                    "Auswahl der UserID ";
                    echo 
                    "<input type='text' name='UserID' value='Userid eintragen' />"
                    "<input type='submit' name='Submit' value='zuordnen' /></form>";

                    echo 
                    "<p />"
                    Und die zuordnen.php:

                    PHP-Code:
                    if (!isset ($_POST['zuordnen'])) $_POST['zuordnen']= "an";
                        
                    {
                          
                        
                    mysql_query("UPDATE ***
                                      SET UserID='"
                    .$_POST['UserID']."' ");

                    *** wurden eingefügt

                    Was liefert ".print_r( $_POST, true )."?
                    PHP-Code:
                    Array
                    (
                        [
                    zuordnen] => Array
                            (
                                [
                    0] => an
                                
                    [1] => an
                            
                    )

                        [
                    UserID] => 2
                        
                    [Submit] => zuordnen

                    Ich habe die ersten beiden Datensätze ausgewählt, aber überall wird die "UserID" auf 2 geändert. Wenn ich keinen Datensatz auswähle, passiert nichts.

                    Ich komme nicht wirklich weiter... Vielleicht kann mir nochmal jemand auf die Sprünge helfen.
                    Danke

                    Kommentar


                    • #11
                      Gib im Formular bei
                      Code:
                      name='zuordnen[]'
                      mal die ID des Eintrags als Index an, nach dem Absenden aktualisierst du alle Datensätze, die den übergebenen IDs entsprechen. Dazu durchläufst du das zuordnen-Array, packst alle IDs ein eigenes Array und kannst dann bei der WHERE-Klausel 'WHERE id IN (...)' verwenden.

                      Dass momentan alle Datensätze geändert werden, liegt schlicht daran, dass du in der UPDATE-Anweisung keine Bedingung angibst ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar

                      Lädt...
                      X