Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] sql syntax error in funktion, kann aber nix finden :(

Einklappen

Neue Werbung 2019

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

  • [Erledigt] sql syntax error in funktion, kann aber nix finden :(

    hallo, es soll onclick eine funktion aufgeruffen werden, da es bei mir mit übergabe von array an die funktion nicht geklappt hat habe ich die ganzen sql anweisungen sammt connect zu db zu funktion verschoben
    jetzt krieg ich aber volgende meldung:
    You have an error in your SQL syntax near '' at line 6
    >> aber at line 6 habe ich nichts was annähernd mir sql zu tuhn hat stahend, also liebt es an der funktion (wenn ich die rausnehme krieg ich heine sql meldung)

    Code:
    function warenkorb_db_eintrag($i, $users)
    {
    	$db = @mysql_connect("senatorhost","root","") or die ("Keine Verbindung zur Zeit möglich, versuchen Sie es später");
    	$dbname = "senator";
    	mysql_select_db($dbname, $db);
    	$sql = "SELECT * FROM `waren` ";
    	if ( !( $result = mysql_query($sql, $db) ) )
    	{
    		die("'$sql'" . '
    ist fehlgeschlagen');
    	}
    	while ($item = mysql_fetch_array($result))
    	{
    		$prices[] = $item["preis"];
    		$nr[] = $item["artnr_ID"];
    	}
    	$sql2 = "INSERT INTO warenkorb SET
        besteller  = '$users',
    	artikelnr  = '$nr[$i]',
    	preis = '$prices[$i]',
    	"; 
    	mysql_query($sql2) or die (mysql_error());
    	
    }
    P.S. vieleicht füge ich die funktion auch falsch in html ein...?
    Code:
    for($i = 0; $i < count($items); $i++)
    {
    	echo (" bla, bla etc
    <td colspan=4 bgcolor=#CCCCCC><div align=center><font size=2 face=Georgia, Times New Roman, Times, serif><a href='$PHP_SELF?buy=$i' onClick = '".warenkorb_db_eintrag($i, $users)."'>Kaufen</font></div></td>  etc ");

  • #2
    Das ist grausam programmiert.

    16.14. Warum soll ich nicht SELECT * schreiben?
    http://www.dclp-faq.de/q/q-sql-select.html

    Du selektierst die komplette Tabelle, sammelst alles in einem Array, um dann einen Eintrag damit zu machen. Autsch sag' ich da.

    Und vermutlich hat einer dieser Variablen keinen Wert: '$users', '$nr[$i]', '$prices[$i]'

    Gruß
    phpfan

    Kommentar


    • #3
      die vars kriegen einen wert aus der db

      aber ich hab gerde gelesen das man eine funktion nicht mit php ind html einbinden kann (ist schon grausam programmiert gebe ich zu aber ich will erst mal das es klappt dann optimieren )

      Kommentar


      • #4
        es ist so: ich selectiere tabele gebe die aus wenn man auf kaufen klickt soll die genau das gekaufte in eine temp tabelle warenkorb schreiben....

        Kommentar


        • #5
          Zitat von egate
          es ist so: ich selectiere tabele gebe die aus wenn man auf kaufen klickt soll die genau das gekaufte in eine temp tabelle warenkorb schreiben....
          PHP => serverseitig
          JS => clientseitig

          Im Moment des onclick-Events ist PHP meilenweit entfernt.

          Kommentar


          • #6
            Ahh, jetzt sehe ich den Fehler, hinter

            preis = '$prices[$i]',

            ist das Komma zuviel.

            Gruß
            phpfan

            Kommentar


            • #7
              danke phpfan jetzt funkt alles vielen dank

              ehm noch ne letzte frage wie kann ich mir in dem fahl die sql abfragen bei funktion sparren? weil wenn array an die funktion übergebe funkt die nicht

              aber am sonsten alles wunderbar danke

              Kommentar


              • #8
                Da ich nur diesen Code-Ausschnitt aus dem Zusammenhang gerissen kenne, den Datenbankaufbau und den Sinn und Zweck der Sache nicht kenne, kann ich da nichts zu sagen.

                Gruß
                phpfan

                Kommentar


                • #9
                  hm ist ein wenig lang aber ist echt nett von dir

                  Code:
                  <?
                  $shoppingcart = array();
                  session_start();
                  session_register('shoppingcart');
                  if (isset($buy)) {
                  	// Artikel am Ende des Arrays $shoppingcart einf&uuml;gen
                  	$shoppingcart[] = $buy;
                  	//	$anzahl[] = $menge;
                  	header("Location: $PHP_SELF?".SID);
                  	exit();
                  }
                  $db = @mysql_connect("senatorhost","root","") or die ("Keine Verbindung zur Zeit möglich, versuchen Sie es später");
                  $dbname = "senator";
                  ?>
                  <html>
                  <head>
                  <title>Produktkatalog</title>
                  </head>
                  <body bgcolor="#FFFFFF" text="#000000">
                  
                  
                  Ihr Warenkorb enth&auml;lt  <?=count($shoppingcart)?>Artikel.<?PHP echo ("Sie sind als ".$users. " angemeldet") ?></p>
                  
                  
                  <?php
                  //anbieter = '$anbiter',
                  mysql_select_db($dbname, $db);
                  $sql = "SELECT * FROM `waren` ";
                  //echo("<td>[img]".$bild[$i]."[/img]</td>"); temp
                  if ( !( $result = mysql_query($sql, $db) ) )
                  {
                  	die("'$sql'" . '
                  ist fehlgeschlagen');
                  }
                  while ($item = mysql_fetch_array($result))
                  {
                  	$items[] = $item["artname"];
                  	$bild[] = $item["bild"];
                  	$prices[] = $item["preis"];
                  	$artbesch[] = $item["artbesch"];
                  	$nr[] = $item["artnr_ID"];
                  }
                  
                  function warenkorb_db_eintrag($i, $users)
                  {
                  	$db = @mysql_connect("senatorhost","root","") or die ("Keine Verbindung zur Zeit möglich, versuchen Sie es später");
                  	$dbname = "senator";
                  	mysql_select_db($dbname, $db);
                  	$sql = "SELECT * FROM `waren` ";
                  	if ( !( $result = mysql_query($sql, $db) ) )
                  	{
                  		die("'$sql'" . '
                  ist fehlgeschlagen');
                  	}
                  	while ($item = mysql_fetch_array($result))
                  	{
                  		$prices[] = $item["preis"];
                  		$nr[] = $item["artnr_ID"];
                  	}
                  	$sql2 = "INSERT INTO warenkorb SET
                      besteller  = '$users',
                  	artikelnr  = '$nr[$i]',
                  	preis = '$prices[$i]'
                  	"; 
                  	mysql_query($sql2) or die (mysql_error());
                  	
                  }
                  
                  for($i = 0; $i < count($items); $i++)
                  {
                  	echo ("
                  <form action=cart.php method=post name=login target=Txt>
                  <table width=661 border=0 align=center cellpadding=0 cellspacing=0>
                      <tr> 
                        <td><img src=img/spacer.gif width=4 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=46 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=8 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=167 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=349 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=5 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=5 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=54 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=17 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=6 height=1 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=1 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td colspan=10><img name=tebele_r1_c1 src=img/tebele_r1_c1.gif width=661 height=2 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=2 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=2 colspan=3><img name=tebele_r2_c1 src=img/tebele_r2_c1.gif width=58 height=25 border=0 alt=></td>
                        <td bgcolor=#CCCCCC><font size=2 face=Georgia, Times New Roman, Times, serif>".$items[$i].", ".number_format($prices[$i],2)."€</font></td>
                        <td rowspan=3><img name=tebele_r2_c5 src=img/tebele_r2_c5.gif width=349 height=27 border=0 alt=></td>
                        <td colspan=4 bgcolor=#CCCCCC><div align=center><font size=2 face=Georgia, Times New Roman, Times, serif><a href='$PHP_SELF?buy=$i' onClick = '".warenkorb_db_eintrag($i, $users)."'>Kaufen</font></div></td>
                        <td rowspan=7><img name=tebele_r2_c10 src=img/tebele_r2_c10.gif width=6 height=74 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=18 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=2><img name=tebele_r3_c4 src=img/tebele_r3_c4.gif width=167 height=9 border=0 alt=></td>
                        <td colspan=4><img name=tebele_r3_c6 src=img/tebele_r3_c6.gif width=81 height=7 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=7 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=5><img name=tebele_r4_c1 src=img/tebele_r4_c1.gif width=4 height=49 border=0 alt=></td>
                        <td rowspan=2><input name=anzahl type=text size=2 maxlength=3 value = 1></td>
                        <td rowspan=5><img name=tebele_r4_c3 src=img/tebele_r4_c3.gif width=8 height=49 border=0 alt=></td>
                        <td colspan=2><img name=tebele_r4_c6 src=img/tebele_r4_c6.gif width=10 height=2 border=0 alt=></td>
                        <td rowspan=4>[img]".$bild[$i]."[/img]</td>
                        <td rowspan=5><img name=tebele_r4_c9 src=img/tebele_r4_c9.gif width=17 height=49 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=2 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=2 colspan=3><font size=2 face=Georgia, Times New Roman, Times, serif>".$artbesch[$i]."</font></td>
                        <td rowspan=4><img name=tebele_r5_c7 src=img/tebele_r5_c7.gif width=5 height=47 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=25 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=3><img name=tebele_r6_c2 src=img/tebele_r6_c2.gif width=46 height=22 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=15 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td rowspan=2 colspan=3><img name=tebele_r7_c4 src=img/tebele_r7_c4.gif width=521 height=7 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=3 border=0 alt=></td>
                      </tr>
                      
                      <tr> 
                        <td><img name=tebele_r8_c8 src=img/tebele_r8_c8.gif width=54 height=4 border=0 alt=></td>
                        <td><img src=img/spacer.gif width=1 height=4 border=0 alt=></td>
                      </tr>
                    </table>
                    </form></p>
                    ");
                  }
                    ?>
                  es gibt nur noch ein problem wie ich text feld menge[$i] nach der eingabe mit der funktion auch übermitteln kann...

                  Kommentar


                  • #10
                    @1 problem abgesehen davon das ich die unnötigen program teile wie sessions var, etc komentare entfernen werde

                    Kommentar


                    • #11
                      Ohohoh, da sind aber gravierende Fehler drin.

                      1. Dein HTML-Code ist unsauber und kann bei manchen Browsern Probleme machen:
                      Code:
                      <form action=cart.php method=post name=login target=Txt>
                      Code:
                      <form action='cart.php' method='post' name='login' target='Txt'>
                      Besonders problematisch kann das bei input-Felder beim Tag value werden, also alle Tag ordentlich mit ' schreiben

                      2. onClick = '".warenkorb_db_eintrag($i, $users)
                      Das kann nicht funktionieren, da Du nicht mit JavaScript eine PHP-Funktion aufrufen kannst. Da wird die Funktion schon beim Seitenaufbau aufgerufen.

                      3. Der Connect und die DB-Selektion in der Funktion sind überflüssig

                      4. Die Funktionen session*register sind veraltet, man sollte nur noch $_SESSION benutzen.

                      5. Zu Select * habe ich schon oben was geschrieben

                      Und noch eine Kleinigkeit zum Programmierstil:

                      Hier und da ein Leerzeichen, eine Leerzeile oder auch mal ein Zeilenumbruch machen die Sache besser lesbar, denn Zeilen mit über 200 Zeichen lassen sich nur schwer überblicken.

                      Gruß
                      phpfan

                      Kommentar

                      Lädt...
                      X