Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable Tabelle einer MySQL ansteuern?

Einklappen

Neue Werbung 2019

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

  • Variable Tabelle einer MySQL ansteuern?

    Moin!

    Ich programmiere momentan ne App für Android, für die es nötig ist, verschiedene Tabellen meiner MySQL Datenbank anzusteuern.
    Ich will dafür aber nicht viele verschiedene .php Dateien erstellen, sondern alles in einer Regeln.

    Erstmal die .php Datei:
    PHP-Code:
    <?php

    //hier wird die Verbindung zur Datenbankhergestellt
    include("connect.php");

    // SQL Query abschicken
    $result mysql_query("SELECT * FROM spieltag");
        
    //Schleife bis alle Eintragungen in Array gespeichert
        
    $listenArray["Liste"] = array();
        while(
    $row mysql_fetch_array($result)) {
            
    $listeneintrag = array();
            
    $listeneintrag["manA"] = $row["manA"];
            
    $listeneintrag["torManA"] = $row["torManA"];
            
    $listeneintrag["rotManA"] = $row["rotManA"];
            
    $listeneintrag["manB"] = $row["manB"];
            
    $listeneintrag["torManB"] = $row["torManB"];
            
    $listeneintrag["rotManB"] = $row["rotManB"];
    Es geht um folgende Zeile:
    Code:
    mysql_query("SELECT * FROM spieltag");
    Wie kann ich hier die Tabelle spieltag2 , spieltag3 usw anwählen?
    Ich möchte, dass die App bei der Abfrage den Wert mitliefert.

    Hier mal der Code der App:
    ArrayList<Spiel> spiele = new ArrayList<Spiel>();
    [...]
    JSONArray datenArray = jsonErgebnis.getJSONArray("Liste");

    for (int i = 0; i<datenArray.length(); i++)
    {
    JSONObject einzelsatz = datenArray.getJSONObject(i);



    spiele.add
    (new Spiel
    (einzelsatz.getString("manA"),

    einzelsatz.getString("torManA"),
    einzelsatz.getString("rotManA"),

    einzelsatz.getString("manB"),
    einzelsatz.getString("torManB"),
    einzelsatz.getString("rotManB")
    )
    );


  • #2
    So:
    - Aufruf der Datei mit Parameter (Annahme: Datei heißt index.php): "index.php?tabelle=spieltag2"
    - PHP:
    PHP-Code:
    $tabelle null;
    if (isset(
    $_GET['tabelle'])) {
        
    $tabelle $_GET['tabelle'];
    }

    // Idee: Ein Array mit den Namen aller erlaubten Tabellen.
    // Das dient zur Validierung der Eingabe und zur Verhinderung von MySQL-Injections.
    // (Nur eine Moeglichkeit, vielleicht ist sie fuer dein Vorhaben nicht geeignet.)
    $tabellen = array('spieltag1''spieltag2''spieltag3');

    if (! 
    in_array($tabelle$tabellen)) {
        die(
    'Ungültige Tabelle!');


    ...

    $result mysql_query("SELECT * FROM $tabelle"); 
    ... 

    Kommentar


    • #3
      Au ja, durchnummerierte Tabellen

      Solche Hilfestellung würde ich gerne negativ bewerten.
      GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

      Kommentar


      • #4
        Dafür gibt's einen Button.

        Kommentar


        • #5
          Zitat von ChristianK Beitrag anzeigen
          Au ja, durchnummerierte Tabellen
          Die Tabellen waren vom TE doch schon so vorgegeben, oder verstehe ich da was falsch? Ich finde die Lösung durchaus sinnhaft.
          Die mysql_* Erweiterung ist veraltet!
          Besser: mysqli_* oder (noch besser) PDO

          Kommentar


          • #6
            Ja. Es wurde dazu keine aussagekräftige Abgabe gemacht. Insofern kann der Lösungsvorschlag auch daneben sein. Steht aber extra auch als Kommentar dabei.

            Kommentar


            • #7
              Die Tabellen waren vom TE doch schon so vorgegeben, oder verstehe ich da was falsch? Ich finde die Lösung durchaus sinnhaft.
              Ich nich. Man muss den TE doch nicht noch im falschen Weg bestärken.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Zitat von nikosch Beitrag anzeigen
                Ich nich. Man muss den TE doch nicht noch im falschen Weg bestärken.
                Du meinst die Tabellen überhaupt so zu strukturieren? Das finde ich auch nicht gut. Ich meinte im Bezug auf die Vorgabe.
                Die mysql_* Erweiterung ist veraltet!
                Besser: mysqli_* oder (noch besser) PDO

                Kommentar


                • #9
                  Ja, aber dann könnte man eben auch einfach anmerken, dass das ganze Unternehmen keine gute Idee ist. Denn mit einem falschen Ansatz kommen in der Regel ein Haufen Folgefehler mit, die man gleich am Anfang vermeiden kann.

                  Kommentar

                  Lädt...
                  X