PHP ft. MySQL

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

  • ghostgambler
    antwortet
    PHP-Code:
    $bedingungen = array(); // Array initialisieren
    if (isset($_POST['blubb'])) { // _POST-Parameter gegeben?
      
    $bedingungen[] = 'blubb LIKE "' $_POST['blubb'] . '"'// Wenn ja, Bedingung ins Array schreiben
    }
    ... 
    // hier folgen die 3 Zeilen für jede weitere Post-Variable noch einmal
    // z.B.
    if (isset($_POST['blub2'])) {
      
    $bedingungen[] = 'blub2 LIKE "' $_POST['blub2'] . '"';
    }

    $query 'SELECT blubb FROM tabelle WHERE '// Anfang vom Query
    // Hier werden alle Bedingungen aus dem Array mit AND verknüpft und an $query angehängt
    $query .= implode(' AND '$bedingungen); 
    Mach doch einfach mal ein paar Ausgaben rein, das Skript sollte wirklich nicht schwer zu verstehen sein

    [edit]
    Beim implode fehlten beim ersten Parameter die Leerzeichen, das ist in der vorigen Version ein Fehler
    btw. Selbstverständlich sollte sein, dass die $_POST-Variablen im Query noch mit mysql_real_escape_string escaped werden müssen!

    Einen Kommentar schreiben:


  • aimbot
    antwortet
    wieso soll er einfach mal drauf los erklären? _du_ könntest uns doch sagen was für ein problem du hast.
    die funktionen kannst du ja im manual nachschlagen

    Einen Kommentar schreiben:


  • xakep
    antwortet
    Hallo!

    @ ghostgambler
    Könntest du bitte dein Code ein wenig erläutern? Ich habe damit ein paar Probleme.

    Danke!

    Einen Kommentar schreiben:


  • ghostgambler
    antwortet
    PHP-Code:
    $bedingungen = array();
    if (isset(
    $_POST['blubb'])) {
      
    $bedingungen[] = 'blubb LIKE "'.$_POST['blubb'].'"';
    }
    ...
    $query 'SELECT blubb FROM tabelle WHERE ';
    $query .= implode('AND'$bedingungen); 

    Einen Kommentar schreiben:


  • xakep
    antwortet
    Hallo.

    Das geschilderte Problem habe ich gelöst. Der Schlüssel zur Lösung ist
    dieser Befehl:

    while ($rows=mysql_fetch_array($result))
    {echo $rows[spaltenname];}

    Dadurch lassen sich alle für mich benötigte Datensätze anzeigen.

    Nun gibt es ein anderes Problem, zu dem ich euch bitten möchte eine Lösung vorzuschlagen.

    Situation:

    Es gibt ein Formular mit folgenden Feldern:

    Kennnummer :
    Hauptgruppe :
    Untergruppe :
    Sachgebiet :
    Beschreibung :
    Dies sind die "Kriterien" nach denen in der Datenbank gesucht werden soll. Nun taucht folgendes Problem aus: Es können alle 5 Suchwörter eingegeben werden, aber auch nur eins oder zwei Wörter. Mit einer vollständigen Suchanfrage würde die SELECT-Abfrage einfach sein

    SELECT dies, jenes, da, her, dort FROM das WHERE dies LIKE $var AND jenes LIKE $var1 AND ...;

    Wenn es aber nur ein Suchwort gibt, dann würde die SELECT-Anfrage dementsprechend aussehen.

    Wie kann ich dieses Problem geschickt lösen, um die vielen IF-Abfragen bezüglich der Suchfelder nicht durchführen zu müssen.

    Danke

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    Dein Code lässt das aber vermuten.

    Poste doch mal den tatsächlich verwendeten Code (Abfrage, Anzahl Ergebnisse, Ausgabe) und sage uns, welche datensätze fehlen

    Einen Kommentar schreiben:


  • phoenix20
    antwortet
    Die Anzahl der Datensätze (2) ist nicht von dieser query.

    Einen Kommentar schreiben:


  • Kropff
    antwortet
    entweder mit while ODER for arbeiten, beides zusammen ist tinnef.

    gruß
    peter

    Einen Kommentar schreiben:


  • xakep
    hat ein Thema erstellt PHP ft. MySQL.

    PHP ft. MySQL

    Hallo an alle!

    Ich habe ein Problem mit meinem PHP-Script. Und zwar es geht darum, dass ich mit Hilfe dieses Befehls:
    PHP-Code:
     $unummer_id_auslesen mysql_query("SELECT unummer_id FROM Zwischentabelle WHERE hnummer_id LIKE 2"); 
    bestimmte Datensätze auswähle.

    Die Anzahl der Datensätze finde ich mit diesem Befehl raus
    PHP-Code:
    $unummer_menge mysql_num_rows($unummer_id_auslesen); 
    es sind letzendlich 2.

    Ich bitte euch mir zu helfen folgendes Problem zu lösen:

    Wie kann ich herausfinden, welche Daten sich in den ausgewählten Zellen (die sich inzwischen in einer Spalte befinden) enthalten

    Mit Hilfe dieses Scriptes lässt sich nur ein Datensatz ausgeben, der auch kommischerweise der letzte ist.
    PHP-Code:
    while ($zelleninhalt mysql_fetch_row($unummer_id_auslesen))

       for (
    $i 0$i mysql_num_rows($unummer_id_auslesen); $i++)             
      {  
      echo 
    "Zellennummer $i$zelleninhalt[$i]<br>"; }

    Also, kurz und bündig. Das Problem ist, dass ich nur den letzten Datensatz bekomme.

    Vielen Dank für die Hilfe

    MfG
    Xakep
Lädt...
X