PHP - mySQL | Select form and switch

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 19 Ιούλ 2005 18:56

Μάλλον πάλι θα χρειαστώ την βοήθεια σας! :oops:

Βρήκα το παρακάτω scriptaki (δουλεύει μια χαρά) και το άλλαξα όπως ήθελα. Αυτο που θέλω είναι να επιλέγω σε ένα μενού μερικές επιλογές. πχ. Να εμφανιστούν μόνο τα δεδομένα τα οποία το Name αρχίζει από Α,Β,C...Z ή να εμφανιστούν μόνο αυτά τα οποία έχουν ίδιο location. έψαξα με το order by αλλά δεν κατάφερα τίποτα!!! Ευχαριστώ προκαταβολικά.

Κώδικας: Επιλογή όλων

<table width="100%"><tr><th width="25%">Name</th><th width="25%">Class</th><th width="25%">Location</th><th width="25%">web</th></tr>
<?
$username="****";
$password="****";
$database="****";

mysql_connect&#40;localhost,$username,$password&#41;;
@mysql_select_db&#40;$database&#41; or die&#40; "Unable to select database"&#41;;
$query="SELECT * FROM db1";
$result=mysql_query&#40;$query&#41;;

$num=mysql_numrows&#40;$result&#41;;

mysql_close&#40;&#41;;

$i=0;
while &#40;$i < $num&#41; &#123;

$name=mysql_result&#40;$result,$i,"name"&#41;;
$class=mysql_result&#40;$result,$i,"class"&#41;;
$location=mysql_result&#40;$result,$i,"location"&#41;;
$web=mysql_result&#40;$result,$i,"web"&#41;;

echo "<tr><td>$name</td><td>$class</td><td>$location</td><td>$web</td></tr>";

$i++;
&#125;

?>
</table>
Τελευταία επεξεργασία από το μέλος mat_ την 19 Δεκ 2005 10:27, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από mrpc » 19 Ιούλ 2005 20:42

Θα χρειαστεί να πειράξεις λίγο το query προσθέτοντας ένα where ανάλογα με την περίπτωση.
Για να δείχνει όσα το name ξεκινάει από Α θα το κάνεις έτσι:

Κώδικας: Επιλογή όλων

$query="SELECT * FROM db1 WHERE `name` LIKE 'A%'"; 
και για αυτά που έχουν το location που θέλεις θα γίνει:

Κώδικας: Επιλογή όλων

$query="SELECT * FROM db1 WHERE `location` = 'tolocationpouthes'"; 

mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 19 Ιούλ 2005 22:40

οκ, αλλά θα πρέπει να φτιάξω διαφορετική σελίδα για κάθε αποτέλεσμα;

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από mrpc » 19 Ιούλ 2005 23:45

Όχι... θα αφού λες για menu, Θα φτιάξεις μια φόρμα με ένα drop down list και στον php κώδικα θα βάλεις ένα switch.
Αν αυτή π.χ. λέγεται menu θα βάλεις στον κώδικά σου τα παρακάτω:

Κώδικας: Επιλογή όλων

if &#40;isset&#40;$_GET&#91;'menu'&#93;&#41;&#41; &#123;
     $menu = $_GET&#91;'menu'&#93;;
     switch &#40;$menu&#41; &#123;
          case "location"&#58;
               $query="SELECT * FROM db1 WHERE `location` = 'tolocationpouthes'";
               break;
          case "lettera"&#58;
               $query="SELECT * FROM db1 WHERE `name` LIKE 'A%'";
               break;
          default&#58;
               $query="SELECT * FROM db1"; 
               break;
          &#125;
     &#125;

mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 27 Ιούλ 2005 15:15

Ευχαριστώ mrpc για την βοήθειά σου αλλά δεν κατάλαβα πως θα το "ενώσω" με το drop menu?

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από mrpc » 27 Ιούλ 2005 19:37

Το menu το σκέφτηκα ως ένα select list σε html forma. Με τη μεταβλητή της μετά κάνεις ότι θες.

mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 28 Ιούλ 2005 21:51

Δοκίμασα αυτό αλλα δεν εμφανίζει τίποτα! Μόνο τη select list αλλά χωρίς αποτελέσματα! Τι κάνω λάθος;

Κώδικας: Επιλογή όλων

<select name="menu">
<option value="location">location</option>
<option value="lettera">letterΑ</option>
<option value="default">default</option>
</select>

<table width="100%"><tr><th width="25%">Name</th><th width="25%">Class</th><th width="25%">Location</th><th width="25%">web</th></tr>
<?
$username="****";
$password="****";
$database="****";

mysql_connect&#40;localhost,$username,$password&#41;;
@mysql_select_db&#40;$database&#41; or die&#40; "Unable to select database"&#41;;
if &#40;isset&#40;$_GET&#91;'menu'&#93;&#41;&#41; &#123;
     $menu = $_GET&#91;'menu'&#93;;
     switch &#40;$menu&#41; &#123;
          case "location"&#58;
               $query="SELECT * FROM db1 WHERE `location` = 'tolocationpouthes'";
               break;
          case "lettera"&#58;
               $query="SELECT * FROM db1 WHERE `name` LIKE 'A%'";
               break;
          default&#58;
               $query="SELECT * FROM db1";
               break;
          &#125;
     &#125;
$result=mysql_query&#40;$query&#41;;

$num=mysql_numrows&#40;$result&#41;;

mysql_close&#40;&#41;;

$i=0;
while &#40;$i < $num&#41; &#123;

$name=mysql_result&#40;$result,$i,"name"&#41;;
$class=mysql_result&#40;$result,$i,"class"&#41;;
$location=mysql_result&#40;$result,$i,"location"&#41;;
$web=mysql_result&#40;$result,$i,"web"&#41;;

echo "<tr><td>$name</td><td>$class</td><td>$location</td><td>$web</td></tr>";

$i++;
&#125;

?>
</table>

mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 08 Δεκ 2005 07:16

Μπορεί κάποιος να μου δώσει τη λύση για τον παραπάνω κώδικα; Ευχαριστώ

nastis
Δημοσιεύσεις: 124
Εγγραφή: 16 Φεβ 2005 16:28
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από nastis » 08 Δεκ 2005 16:21

Αυτός ο κώδικας είχε ένα <select> χωρίς να είναι μέσα σε ένα <form>
και χωρίς να γίνεται submit "κάπως",
έτσι ώστε να μπορέσεις να πάρεις την μεταβλητή σου με GET όπως δείχνει να θέλεις να κάνεις.

Κοντολογίς
<form ........ bla bla>
<select></select>
<input type=submit>
</form>
και μετα τις ιστορίες με τα GET...

Βάλε ένα "php tutorial form" στο google πήγαινε στο πρώτο λινκ
και αμα δεν τα καταφέρεις ξαναρώτα.
Είπα να μην σου δώσω το "ψάρι" έτσι χύμα ;-)

Φιλικά Β.
www.oktonia.com - Παγκόσμιο Χωριό Γνώσης Λυμένα Θέματα Εξετάσεων - Ασκήσεις

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από Basilakis » 08 Δεκ 2005 23:10

Κώδικας: Επιλογή όλων

<select name="menu"> 
<option value="location">location</option> 
<option value="lettera">letterΑ</option> 
<option value="default">default</option> 
</select> 
<table width="100%"><tr><th width="25%">Name</th><th width="25%">Class</th><th width="25%">Location</th><th width="25%">web</th></tr> 
<? 
$host="localhost";
$username="root"; 
$password=""; 
$database=""; 

mysql_connect&#40;$host,$username,$password&#41;; 
@mysql_select_db&#40;$database&#41; or die&#40; "Unable to select database"&#41;; 
if &#40;isset&#40;$_GET&#91;'menu'&#93;&#41;&#41; &#123; 
     $menu = $_GET&#91;'menu'&#93;; 
     switch &#40;$menu&#41; &#123; 
          case "location"&#58; 
               $query="SELECT * FROM db1 WHERE `location` = 'tolocationpouthes'"; 
               break; 
          case "lettera"&#58; 
               $query="SELECT * FROM db1 WHERE `name` LIKE 'A%'"; 
               break; 
          default&#58; 
               $query="SELECT * FROM db1"; 
               break; 
          &#125; 
     &#125; 
$result=mysql_query&#40;$query&#41;; 

$num=mysql_numrows&#40;$result&#41;; 

mysql_close&#40;&#41;; 

$i=0; 
while &#40;$i < $num&#41; &#123; 

$name=mysql_result&#40;$result,$i,"name"&#41;; 
$class=mysql_result&#40;$result,$i,"class"&#41;; 
$location=mysql_result&#40;$result,$i,"location"&#41;; 
$web=mysql_result&#40;$result,$i,"web"&#41;; 

echo "<tr><td>$name</td><td>$class</td><td>$location</td><td>$web</td></tr>"; 

$i++; 
&#125; 

?> 
</table>

Egw pali ekana mia mikrh diwrthwsh stoin kwdika. Dwse kai ta stoixeia ths bashs dedomenwn kai tha sou kanw to scriptaki sou na doulevei apsoaga! :hammer:

mat_
Δημοσιεύσεις: 121
Εγγραφή: 09 Απρ 2004 02:01

PHP - mySQL | Select form and switch

Δημοσίευση από mat_ » 19 Δεκ 2005 10:26

Με τη βοήθεια των παραπάνω κατέληξα στο εξής και λειτουργεί σωστά, επίσης άλλαξα τον τίτλο τουυ θέματος γιατί ο προηγούμενος δεν ήταν τόσο σχετικός τελικά.

Κώδικας: Επιλογή όλων

<form action="index.php" method="get">
<select name="menu">
<option value="location">location</option>
<option value="lettera">letterΑ</option>
<option value="default">default</option>
</select>
<input type="submit" name="Submit" value="Go" /> 
</form>
<table width="100%"><tr><th width="25%">Name</th><th width="25%">Class</th><th width="25%">Location</th><th width="25%">web</th></tr>
<?
$host="localhost";
$username="******";
$password="******";
$database="******";

mysql_connect&#40;$host,$username,$password&#41;;
@mysql_select_db&#40;$database&#41; or die&#40; "Unable to select database"&#41;;
if &#40;isset&#40;$_GET&#91;'menu'&#93;&#41;&#41; &#123;
     $menu = $_GET&#91;'menu'&#93;;
     switch &#40;$menu&#41; &#123;
          case "location"&#58;
               $query="SELECT * FROM table WHERE `location` = 'tolocationpouthes'";
               break;
          case "lettera"&#58;
               $query="SELECT * FROM table WHERE `name` LIKE 'A%'";
               break;
          default&#58;
               $query="SELECT * FROM table";
               break;
          &#125;
     &#125;
$result=mysql_query&#40;$query&#41;;

$num=mysql_numrows&#40;$result&#41;;

mysql_close&#40;&#41;;

$i=0;
while &#40;$i < $num&#41; &#123;

$name=mysql_result&#40;$result,$i,"name"&#41;;
$class=mysql_result&#40;$result,$i,"class"&#41;;
$location=mysql_result&#40;$result,$i,"location"&#41;;
$web=mysql_result&#40;$result,$i,"web"&#41;;

echo "<tr><td>$name</td><td>$class</td><td>$location</td><td>$web</td></tr>";

$i++;
&#125;

?>
</table>

Όταν κάνω μια επιλογή από το select εμφανίζει σωστά αποτελέσματα αλλά στην γραμμή διευθύνσεων το εξής πχ. ../index.php?menu=lettera&Submit=Go

Δεν θα έπρεπε να εμφανίζει μόνο: ../index.php?menu=lettera ?

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

PHP - mySQL | Select form and switch

Δημοσίευση από Basilakis » 19 Δεκ 2005 13:05

Afto den se xalaei... Afou leitourgei to script to query pou dhmiourgei den se peirazei... ;)

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

PHP - mySQL | Select form and switch

Δημοσίευση από panosru » 19 Δεκ 2005 14:41

me bash ton kodika pou egrapses parapano sou protino ayto:

Κώδικας: Επιλογή όλων

<form action="index.php" method="post">
<select name="menu">
<option value="location">location</option>
<option value="lettera">letterΑ</option>
<option value="default">default</option>
</select>
<input type="submit" name="Submit" value="Go" />
</form>
<table width="100%"><tr><th width="25%">Name</th><th width="25%">Class</th><th width="25%">Location</th><th width="25%">web</th></tr>
<?
$host="localhost";
$username="******";
$password="******";
$database="******";

if&#40;!@mysql_connect&#40;$host,$username,$password&#41;&#41; &#123;
    $error&#91;&#93; = "Error conecting to database -> ".mysql_error&#40;&#41;."<br /> Error number&#58; ".mysql_errno&#40;&#41;;
&#125;
if&#40;!@mysql_select_db&#40;$database&#41;&#41;&#123; 
    $error&#91;&#93; = "Error selecting the database &#123;$database&#125;";
&#125;
if&#40;!empty&#40;$error&#41;&#41; &#123;
    foreach&#40;$error as $key => $val&#41; &#123;
        echo &#40;$key+1&#41;." => &#123;$val&#125; <br />";
    &#125;
&#125;
 
/**
* ayto den einai aparethto
* if &#40;isset&#40;$_POST&#91;'menu'&#93;&#41;&#41; &#123;
*/
//     $menu = $_POST&#91;'menu'&#93;; den xreiazete na to diloseis mporeis na to baleis sto switch sou katheytheian
     switch &#40;$_POST&#91;'menu'&#93;&#41; &#123;
         
         default&#58;
              $query = "SELECT * FROM `table`";
              break;
         case "location"&#58;
              $query = "SELECT * FROM `table` WHERE `location` = 'tolocationpouthes'";
              break;
         case "lettera"&#58;
              $query = "SELECT * FROM `table` WHERE `name` LIKE 'A%'";
              break;
     &#125;
/**
* &#125;
*/
$result = mysql_query&#40;$query&#41;;
$num = mysql_num_rows&#40;$result&#41;;

for&#40;$i = 0; $i <= $num; $i++&#41; &#123;
    $name = mysql_result&#40;$result,$i,"name"&#41;;
    $class = mysql_result&#40;$result,$i,"class"&#41;;
    $location = mysql_result&#40;$result,$i,"location"&#41;;
    $web = mysql_result&#40;$result,$i,"web"&#41;;

    echo&#40;"<tr>                  " 
        ."<td>&#123;$name&#125;</td>      " 
        ."<td>&#123;$class&#125;</td>     " 
        ."<td>&#123;$location&#125;</td>  " 
        ."<td>&#123;$web&#125;</td>       " 
        ."</tr>                 "&#41;;
&#125;

?>
</table>

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης