[Funktion] Mysql abfrage und funktion

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

  • [Funktion] Mysql abfrage und funktion

    hey zunächst einmal möchte ich sagen das ich ein php noob bin (ich lerne erst seit 4 Monaten php )

    2 fragen habe ich:
    1)
    wenn ich folgende SQL abfrage mache bekome ich einen parse error
    PHP-Code:
    $sql1 'SELECT * FROM jos_users WHERE id = $row1['besitzer_id'] LIMIT 1'
    ich habe bereits versucht die variable in ' zu setzten aber das funkt auch nicht


    2)
    PHP-Code:
    //first mysql query (Roheisenmiene)
        
    $query1 'SELECT * FROM si_gebaeude WHERE geb_typ LIKE \'rfem\' ORDER BY stufe 
    DESC LIMIT 1;'
    ;
        
        
    $result1 mysql_query ($query1) or die (mysql_error());
        
    $row1 mysql_fetch_array ($result1);

    //2nd mysql query (Eisenmiene)
        
        
    $query2 'SELECT * FROM si_gebaeude WHERE geb_typ LIKE \'fem\' ORDER BY stufe 
    DESC LIMIT 1;'
    ;
        
        
    $result2 mysql_query ($query2) or die (mysql_error());
        
    $row2 mysql_fetch_array ($result2); 
    es gibt 19 dieser Abfragen, die identisch ablaufen, bis auf den unterschied, dass immer ein anderer Geb_typ abgefragt wird.
    Nun wollte ich fragen wie man das in einer Funktion zusammenfassen kann (währe eine while schleife möglich?)


    vielen dank schon mal für die Hilfe


    mfg Julius
    Zuletzt geändert von JuliusCaesar; 02.07.2007, 16:41.

  • #2
    Grundlage: http://www.php.net/manual/en/language.types.string.php

    Kommentar


    • #3
      hey danke erstmal für die schnelle hilfe
      ich habe mir das mal durchgelsenen,
      in dem artikel wird diese form besprochen
      PHP-Code:
      echo "A banana is {$fruits['banana']}."
      die habe ich nun auf meine SQL abfrage übertragen

      PHP-Code:
      $sql1 "SELECT * FROM jos_users WHERE id = {$row1['besitzer_id']} LIMIT 1."
      funkt aber immer noch nicht, ich bekomme wiede rnen parse error


      Parse error: syntax error, unexpected '"' in xxxxx on line 150
      kann mir da jemand helfen

      Kommentar


      • #4
        und was steht in den genannten zeilen?

        Kommentar


        • #5
          Und wenn schon Copy&Paste, dann bitte richtig. Ich glaube ein SQL-Statement muss man nicht mit einem Punkt beenden, wie z.B. den Satz "Ne Banane ist ne Frucht.".

          Kommentar


          • #6
            hey die 1. abfrage habe ich nun hinbekommen
            PHP-Code:
            $sql1 "SELECT * FROM jos_users WHERE id = {$row1['besitzer_id']} LIMIT 1"
            daran meckert er auch nicht rum

            an der 2. Abfrage meckert er allerdings rum, obwohl ich nur die variablen geändert habe

            PHP-Code:
            $sql2 "SELECT * FROM jos_users WHERE id = {$row2['besitzer_id']} LIMIT 1"
            Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in xxxxx on line 156

            Anmerkung:Linie 156 ist die 2. SQL abfrage, vorher steht nur folgender Kommentar im Quellcode (und nen Kommentar werde ich wohl gerade noch richtig hinbekommen ), es muss also an dieser Abfrage liegen, obwohl ich keinen unterschied sehe
            PHP-Code:
            //nick2 (Eisenmiene) 

            Kommentar


            • #7
              Wahrscheinlich fehlt in der vorangehenden Codezeile das abschließende Semikolon.
              ich glaube

              Kommentar


              • #8
                in einem Kommentar ein ;
                habe ich aber auch schon probiert, das funkt auch nicht

                PS:in Zeile 155/156 steht
                PHP-Code:
                //nick2 (Eisenmiene) Zeile 155
                    
                $sql2 "SELECT * FROM jos_users WHERE id = {$row2['besitzer_id']} LIMIT 1"//Zeile 156 
                Zuletzt geändert von JuliusCaesar; 02.07.2007, 01:11.

                Kommentar


                • #9
                  Nicht im Kommentar - ein Kommentar ist keine Codezeile und wird vom Parser ignoriert. Davor.

                  Edit: Eisenmine ohne ie.
                  ich glaube

                  Kommentar


                  • #10
                    ah ja, da hatte ich ein Semikolon vergessen, aber jetzt meckert der auch noch an einer SQL abfrage rum
                    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1

                    Wie kann ich das im Quellcode so machen, dass, wenn eine abfrage nicht funktioniert, er mir diese Abfrage wieder ausgibt
                    (müsste doch mit if gehen oder? nur was soll ich als Bedingung benutzten?)

                    Kommentar


                    • #11
                      http://www.php-resource.de/forum/sho...threadid=50454

                      error_reporting
                      query ausgeben

                      Kommentar


                      • #12
                        danke für die Antworten, aber ich bin wohl zu blöd anständiges debugging zu betreiben

                        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1
                        SQL Fehler $sql3 überprüfen: SELECT * FROM jos_users WHERE id = LIMIT 1

                        Folgende SQL Abfrage


                        PHP-Code:
                        $sql3 "SELECT * FROM jos_users WHERE id = {$row3['besitzer_id']} LIMIT 1"
                        ich kann dort keinen unterschied zur vorherigen Abfrage ($sql1) entdecken, und an der meckert er nicht rum
                        PHP-Code:
                        $sql1 "SELECT * FROM jos_users WHERE id = {$row1['besitzer_id']} LIMIT 1"
                        oder sehr ihr den Syntax Fehler?

                        PS: error reporting steht bei mir standardmäßig auf all

                        Kommentar


                        • #13
                          Original geschrieben von JuliusCaesar
                          danke für die Antworten, aber ich bin wohl zu blöd anständiges debugging zu betreiben
                          Ja.
                          Folgende SQL Abfrage

                          $sql3 = "SELECT * FROM jos_users WHERE id = {$row3['besitzer_id']} LIMIT 1";

                          ich kann dort keinen unterschied zur vorherigen Abfrage ($sql1) entdecken
                          Man, du sollst du den Inhalt dieser Variablen nach der Zuweisung zur Kontrolle ausgeben lassen ...!
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            danke für die Antworten, aber ich bin wohl zu blöd anständiges debugging zu betreiben
                            Ganz offensichtlich, denn ansonsten würdest du mal $sql3 ausgeben echo und dir die Ausgabe ansehen.

                            Kommentar


                            • #15
                              WHERE id = LIMIT 1
                              Du musst deine Daten vorher überprüfen, und zwar, ob sie vorhanden sind und ob sie deinen Erwartungen entsprechen.

                              Nicht nur, dass du sonst Fehlermeldungen bekommst, sondern du öffnest damit auch Sicherheitslücken (->SQL-Injection).
                              ich glaube

                              Kommentar

                              Lädt...
                              X