[PHP MySQL] DB auf Inhalt prüfen, wenn leer dann Einträge aus anderer DB wählen und..

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

  • [PHP MySQL] DB auf Inhalt prüfen, wenn leer dann Einträge aus anderer DB wählen und..

    Hi,

    bin neu hier und lerne noch PHP und MySQL.
    Ich würde gerne wissen, wie man eine Tabelle1 auf Inhalte prüft und wenn keine Vorhanden sind, verschiedene Einträge aus einer anderen Tabelle2 einfügt.
    Die Schwierigkeit daran soll sein, dass man a) zufällige Inhalte aus der zweiten Tabelle auswählt und b) noch weitere Inhalte für die Spalten der ersten Tabelle mit gibt.

    Also eine Funktion mit if ?! Z.B.:

    PHP-Code:
    function listTableEntries(); {
    if(
    Tabelle1 ist leer) {
    select 3 zufällige Einträge aus Tabelle2 und füge noch die Werte xy und z in Tabelle1 ein
    } else {
    Tabelle1 war nicht leer
    zeige 
    die Inhalte von Tabelle1 mitsamt xy und z
    }

    So könnte es klappen, denke ich, weiß allerdings nicht welche PHP-Stichwörter ich dafür alles anwenden muss? Also in Verbindung mit MySQL und Queries.

  • #2
    Du suchst mysql_query()?

    Kommentar


    • #3
      Ich kann nicht auf gut Glück 500 Chapters im Manual lesen, um dann die 3 oder 4 nötigen Befehle zu finden die für meine Übung nötig sind. Ich les gern, wenn mir jemand auf die Sprünge hilft welche Befehle dafür nötig sind

      Kommentar


      • #4
        Zitat von TobiaZ Beitrag anzeigen
        Du suchst mysql_query()?
        Im Jahr 2012 sollte man einem Einsteiger IMHO nicht mehr zu der alten API raten.

        @espe1
        Wenn du noch gar keine Ahnung hast wie und wo du ansetzen sollst, dann such dir ein Tutorial das entweder PDO oder mysqli als API zu mySql nutzt.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Soooo hier mal so weit wie ich es bisher geschafft habe...

          In dieser Funktion soll erst einmal geprüft werden, ob Einträge in der Tabelle `character_quests` vorhanden sind.

          Wenn nicht => 3 zufällige aus der Tabelle `quests` generieren und in `character_quests` mit zusätzlichen Werten (Belohnung, characterID, Dauer) speichern.

          Wenn vorhanden => Die 3 Quests anzeigen...

          PHP-Code:
                  $questID = ; //keine Ahnung wie ich an die Werte noch ran komme
                  
          $questTitle = ;
                  
          $questDescription = ;
                  
          $characterID = ;
                  
          $questMoney getCharacters('levelID') * rand(1,4);
                  
          $questExperience getCharacters('levelID') * rand(50,200);
                  
          $questTime =  150 rand(1,4);

          function 
          listRandomQuests() {
              global 
          $db$characterID;
              
              if(
          mysqli_query($db"SELECT count(*) FROM character_quests WHERE characterID = $characterID") > 0) {
              
                  
          $sql    =   "
                              SELECT
                                  questName,
                                  questDescription,
                                  questGold,
                                  questExperience,
                                  questTime
                              FROM
                                  character_quests
                              WHERE
                                  characterID = 
          $characterID
                              ORDER BY
                                  questTime ASC
                              "
          ;
                  
          $result $db->query($sql);
                  
          $rows   = array();
                  
                  while(
          $row $result->fetch_object()) {
                      
          $rows[] = $row;
                  }
                  
                  foreach(
          $rows as $row) {
                      echo 
          "<div>";
                      echo 
          "<input id='$row->questName' type='radio' name='randomQuest' value='$row->questName' />";
                      echo 
          "<label for='$row->questName'>";
                      echo 
          "<span class='yellow'>$row->questName</span>";
                      echo 
          "<br />";
                      echo 
          "$row->questDescription";
                      echo 
          "</label>";
                      echo 
          "</div>";
                  }

              } else {

                  
          $sql  "
                          INSERT INTO
                              character_quests(
                                  questID,
                                  questTitle,
                                  questDescription,
                                  characterID,
                                  questMoney,
                                  questExperience,
                                  questTime
                              )
                          VALUES
                              (
                                  ?, ?, ?, ?, ?, ?, ?
                              )
                          "
          ;
                          
                  
          $stmt $db->prepare($sql);
                  
          $stmt->bind_param   (
                                      
          'issiiii',
                                      
          $questID,
                                      
          $questTitle,
                                      
          $questDescription,
                                      
          $characterID,
                                      
          $questMoney,
                                      
          $questExperience,
                                      
          $questTime
                                      
          );
                  
          $stmt->close();
              
              }

          Jetzt seht ich vielleicht nochmal deutlicher was ich versuche da zu schaffen...

          [COLOR="#FF0000"]Was ich konkret wissen möchte: Geht das so überhaupt, oder verfolge ich eine falsche Spur?![/COLOR]

          Kommentar


          • #6
            ansatz ist okay, aber funktionieren wird es wohl nicht.

            Du solltest halt versuchen den Code genau zu verstehen. Schau dir z.B.mal genau an, was mysqli_query zurückgibt.

            Versuch deinen Code stück für Stück aufzubauen. Erst wenn ein Teil funktioniert, ergänzt du den nächsten. Nur so kann es funktionieren.

            Kommentar

            Lädt...
            X