Funktion mit SQL Query und array erstellen

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

  • Funktion mit SQL Query und array erstellen

    Hallo liebe Community.

    Erstmal ein freundliches Hallo, da dies mein erster Post in diesem Forum hier sein wird. Ich finds super, dass Leute wir ihr, Freizeit darin investiert, anderen, die noch nicht so bewandert in PHP sind, behilflich zu sein.
    Ich selbst bin auch noch relativ neu in dem Bereich, deshalb bitte ich bei der ein oder anderen dummen Frage um Nachsicht

    Zu meinem Problem:
    Ich habe eine index-Seite, auf der sich ein Formular befindet. In diesem Formular trage ich Daten auf eine mySQL DB ein. Die SQL Abfrage möchte ich gerne in eine Funktion packen, weil ich diese wahrscheinlich noch öfter verwenden werde. Leider habe ich aber genau dabei Probleme.
    Hier mein Formular, welches sich in der index.php befindet:

    PHP-Code:
    <tr>
      <td><input type="text" size="2" name="menge_fahrzeug1" value="0"></td>
      <td width="150"><?php echo htmlentities($fahrzeug[1]); ?></td><td width="100"><?php echo $preis[1]; ?> EUR</td>
      <td><?php echo htmlentities($beschreibung[1]); ?></td></tr>
     <tr>
      <td><input type="text" size="2" name="menge_fahrzeug2" value="0"></td>
      <td width="150"><?php echo htmlentities($fahrzeug[2]); ?></td><td width="100"><?php echo $preis[2]; ?> EUR</td>
      <td><?php echo htmlentities($beschreibung[2]); ?></td></tr>
     <tr>
      <td><input type="text" size="2" name="menge_fahrzeug3" value="0"></td>
      <td width="150"><?php echo htmlentities($fahrzeug[3]); ?></td><td width="100"><?php echo $preis[3]; ?> EUR</td>
      <td><?php echo htmlentities($beschreibung[3]); ?></td></tr>
    Nun die Funktion (functions.php), mit der ich die Daten, die in das Formular eingetragen werden sollen, aufruft (ich weiß, dass man da irgendwie mit return arbeiten sollte, aber habe keine Ahnung, wo sowas hinkommt. Auch sagte man mir, dass das nur mit einem Array ginge):

    PHP-Code:
    function showcars()
    {
        
    $sql mysql_query("SELECT
                                * 
                            FROM 
                                cars 
                            ORDER BY 
                                id 
                            DESC;"
    ) OR die(mysql_error());

    while(
    $row mysql_fetch_assoc($sql)) 
    {
        
    $fahrzeug[$row[id]] = $row[kategorie];
        
    $preis[$row[id]] = $row[preis];
        
    $beschreibung[$row[id]] = $row[beschreibung];
    }


    Und einbinden wollte ich das Ganze mit diesem Code in die index.php

    PHP-Code:
    include "inc/functions.php";
    showcars(); 
    Leider funktioniert das überhaupt nicht, es werden keine Daten angezeigt.
    Könnt ihr mir sagen, woran das liegt ? Ich habe schon sämtliche Tuts durch, und über Google habe ich auch kein Beispiel gefunden, was sich mit einem ähnlichen Problem beschäftigt.

  • #2
    PHP-Code:
    $fahrzeug[$row['id']] = $row['kategorie']; 
    außerdem muss alles in ein array rein:
    PHP-Code:
    while($row mysql_fetch_assoc($sql)) 
    {
      
    $auto['fahrzeug'][$row'[id']] = $row['kategorie'];
      
    $auto['preis'][$row['id']] = $row['preis'];
      
    $auto['beschreibung'][$row['id']] = $row['beschreibung'];
    }
    return 
    $auto
    und dann der aufruf:
    PHP-Code:
    include "inc/functions.php";
    $autos showcars();
    print_r($autos); 
    gruß
    peter
    Zuletzt geändert von Kropff; 14.03.2008, 11:55.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Das habe ich nun geändert, aber keider noch ohne Effekt. Muss man das nicht alle in ein array stopfen und das dann returnen ? <-- Leihenhaft ausgedrückt

      EDIT: Ah, dein Edit habe ich gerade erst gesehen. Das teste ich mal. Danke.
      Zuletzt geändert von CosmoPhobia; 14.03.2008, 11:58.

      Kommentar


      • #4
        siehe geänderten post.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ich nehme mal an, er stellt nach den Änderungen noch nichts dar, weil die Sachen im Formular noch geändert werden müssen. Habe mich eben daran versucht, aber leider ohne Erfolg. Wie muss ich das denn umformatieren ?

          EDIT: Außerdem bekomme ich folgende Fehlermeldung
          Parse error: syntax error, unexpected '}' in /Applications/xampp/xamppfiles/htdocs/test/inc/functions.php on line 19
          Warum dieses, die Klammer ist doch da richtig, um die function abzuschließen

          Kommentar


          • #6
            PHP-Code:
                <tr>
                  <td><input type="text" size="2" name="menge_fahrzeug1" value="0"></td>
                  <td width="150"><?php echo htmlentities($fahrzeug[1]); ?></td><td width="100"><?php echo $preis[1]; ?> EUR</td>
                  <td><?php echo htmlentities($beschreibung[1]); ?></td></tr>
                 <tr>
                  <td><input type="text" size="2" name="menge_fahrzeug2" value="0"></td>
                  <td width="150"><?php echo htmlentities($fahrzeug[2]); ?></td><td width="100"><?php echo $preis[2]; ?> EUR</td>
                  <td><?php echo htmlentities($beschreibung[2]); ?></td></tr>
                 <tr>
                  <td><input type="text" size="2" name="menge_fahrzeug3" value="0"></td>
                  <td width="150"><?php echo htmlentities($fahrzeug[3]); ?></td><td width="100"><?php echo $preis[3]; ?> EUR</td>
                  <td><?php echo htmlentities($beschreibung[3]); ?></td></tr>
            also so was arbeitet man in schleifen ab.

            des weiteren:
            grundlagen
            fehlersuche
            register_globals

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Re: Funktion mit SQL Query und array erstellen

              Original geschrieben von CosmoPhobia
              Leider funktioniert das überhaupt nicht, es werden keine Daten angezeigt.
              Könnt ihr mir sagen, woran das liegt ?
              das liegt am Geltungsbereich von Variablen $fahrzeug innerhalb der funktion ist eine andere variable als $fahrzeug außerhalb der funktion.
              aber fang jetzt nicht mit global oder referenzen an, mach's lieber wie kropff vorgeschlagen hat mit einem array als return und arbeite dann das ding in einer schleife ab.

              Kommentar


              • #8
                Okay ich werds versuchen. Da mit globalen und lokalen Variablen war mir schon bekannt, nur die Sache mich den arrays, und diese in einer Schleife (foreach o.ä. nehme ich an) abzubauen, das wusste ich bislang noch nicht so genau. Werde mich da mal schlau machen und meine Lösung hier posten, um zu fragen, was man daran noch optimieren könnte.

                Danke bis hierhin erstmal.

                Kommentar


                • #9
                  Ich habs jetzt hinbekommen, allerdings habe ich keine Schleife verwendet, weil das Forumlar, was ich nutze, eine spezielle Formatierung benötigt, weil dort nicht nur die Ergebnisse des Arrays drin stehen, sondern der Benutzer auch Mengen definieren kann.

                  Hier mal der Code (functions und include stehen ja schon weiter oben):

                  PHP-Code:
                  <td><input type="button" value="&lt;" onClick="spinDown(this.form.menge_fahrzeug1)">
                  <input type="text" size="2" name="menge_fahrzeug1" value="0" readonly="readonly">
                  <input type="button" value="&gt;" onClick="spinUp(this.form.menge_fahrzeug1)">
                  </td>
                    <td width="150"><?php echo htmlentities($autos[fahrzeug][1]); ?></td>
                  <td width="100"><?php echo $autos[preis][1]; ?> EUR</td>
                    <td><?php echo htmlentities($autos[beschreibung][1]); ?></td>
                  Ich denke mal, in diesem Fall ist das schon okay so, oder ?

                  Kommentar


                  • #10
                    und nochmal! es heißt:
                    PHP-Code:
                    $autos['beschreibung'
                    siehe auch das manuall

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Danke für den Hinweis, Peter. Ist ja durchaus wichtig zu wissen, sonst wundert man sich irgendwann, warum irgendwas nicht so läuft, wie gewünscht.
                      Ich denke ich sollte jetzt klar kommen. Bis zum nächsten mal und nochmal besten Dank.

                      Kommentar

                      Lädt...
                      X