2016-06-15 9 views
0

Also ich bin neu und ich wollte die ID meiner li-Elemente verwenden, um eine Anfrage an SQL zu stellen, aber zu spät realisiert, das war nicht möglich. Jetzt stecke ich fest und ich weiß nicht, wie ich vorgehen soll, außer indem ich den langen Weg mache und jeden Buchstaben einzeln schreibe.PHP zu SQL Anfrage

Hier ist mein Code:

  <li style="float: right;">Themes 
      <ul> 

      <?php 
       $id_count = 0; 
       $db=mysql_connect('localhost','root',''); 
       if(!$db) { 
        die('Could not connect: '.mysql_error()); 
       } 
       $connection_string=mysql_select_db('Mydb',$db); 
       $selectSQL='SELECT * FROM color_patterns';  
       $queryset=mysql_query($selectSQL); 
       $num=mysql_num_rows($queryset); 
       if(0==$num) { 
        echo "No record"; 
        exit; 
       } else { 
        while($row=mysql_fetch_assoc($queryset)) {?> 
        <li id="<?php echo($id_count) ?>" onclick=" 
           $sql='SELECT * FROM color_elements WHERE pat_ID = "the index of the li"';  
           $query=mysql_query($sql); 
           $hex1 = "hex code in row 1" 
           $hex2 = "hex code in row 2" 
           $hex3 = "hex code in row 3""> 
         <?php echo($row['name']); 
         $id_count++; 
         ?></li><?php 
        } 

       } 
      ?> 


      </ul> 
     </li> 

Die Themen Listenelement eine Dropdown-Liste, die von der while-Schleife aufgefüllt wird (es erstellt eine neue li für jede Zeile in der Tabelle color_patterns und setzt den Namen des Reihe als der Titel der Li, funktioniert dieser Teil tadellos). Jetzt, wenn der Benutzer auf eine der li in der Dropdown-Liste klickte, wollte ich eine SQL-Anfrage an die color_elements-Tabelle senden, wo die ID = "der angeklickte li-Index" und es wird eine Tabelle mit 3 Zeilen und und ich würde den Wert zuweisen in der Spalte "hex_code" von jeder Zeile zu einer von 3 PHP-Variablen. Ich kann mir sowieso nicht vorstellen, dies zu tun (Hauptsache, ich sende den angeklickten Index an SQL), ist es möglich oder muss ich es anders machen (ich weiß einen anderen Weg, aber es ist hässlich und lang).

Zum Beispiel: My color_patterns Tabelle hat 2 Reihen mit den Namen A und B,

die while-Schleife schafft 2 Li ein markiertes A und die andere B markiert, Wenn der Benutzer klickt, um eine ein SQL-Befehl ausgeführt wird, :

$sql='SELECT * FROM color_elements WHERE pat_ID = 1'; //here 1 is the index of A 

dies eine Tabelle mit drei Zeilen zurückgibt, und ich benutze die „hex_code“ Spalte $ hex1, $ hex2, $ hex3 Werte basierend auf der 1., 2. und 3. Reihe zuzuordnen.

Jede Hilfe wird geschätzt. Vielen Dank.

+5

Bitte [stoppen Sie mit mysql_ * 'Funktionen] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Diese Erweiterungen] (http://php.net/manual/en/migration70.removed-exts-sapis.php) wurden in PHP 7 entfernt. Erfahren Sie mehr [vorbereitet] (http://en.wikipedia.org/ (http://php.net/manual/en/pdo.prepared-statements.php) und [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) und erwäge die Verwendung von PDO, [es ist wirklich ziemlich einfach] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

JavaScript ist Client-Seite und PHP ist Server-Seite. Sie können eine Abfrage nicht direkt in JavaScript ausführen, stattdessen würden Sie AJAX verwenden, um die erforderlichen Daten zu erfassen (wie ich Ihnen zuvor gezeigt habe) und dann eine AJAX-Anfrage an ein PHP-Skript schreiben, das die Datenbank abfragt. –

+0

Ich war mir der PDO nicht bewusst. Ich werde es lesen, aber löst es das Problem des li-Index? Das ist das größte Problem, das ich habe, ist, ich weiß nicht, wie man den Index von li an SQL sendet, wenn der Benutzer auf die li klickt –

Antwort

0
while($row=mysql_fetch_assoc($queryset)) {?> 
        <li id="<?php echo($id_count) ?>" onclick=' 
           $sql="SELECT * FROM color_elements WHERE pat_ID = $id_count"';  
           $query=mysql_query($sql); 
           $hex1 = "hex code in row 1" 
           $hex2 = "hex code in row 2" 
           $hex3 = "hex code in row 3""> 
         <?php echo($row['name']); 
         $id_count++; 
         ?></li><?php 
        } 

Warum möchten Sie den Wert von MySQl erhalten, wenn es in PHP verfügbar ist?