andidoros Δημοσ. 14 Μαΐου 2011 Δημοσ. 14 Μαΐου 2011 καλησπέρα : δεν έχω ασχοληθεί με προγραμματισμό από τότε που έπαιζα σε basic oric atmos 48k ψάχνω 2 μέρες αλλά δεν ξέρρω πως να μιλήσω στο php επίσης δεν γνωρίζω τι λέξεις κλειδιά να βάλω σε μηχανή αναζήτησης για να βρω αυτό που θέλω πάνω κάτω αναζητώ λύση στα εξής πεδία : αντί προλόγου : έχω μια βάση δεδομένων με έναν πίνακα id, name, lastname, phone, cellphone, email, amka, adress, comingdate, leavingdate έκαμα copy/paste κώδικα από το διαδίκτυο για να φτιάξω ένα .php όπου θα μου ανήγει τον πίνακα <?php $host="χχχ"; // Host name $username="χχχ"; // Mysql username $password="χχχ"; // Mysql password $db_name="χχχ"; // Database name $table = 'κκκκ_mysql'; // sending query $result = mysql_query("SELECT * FROM {$table}"); if (!$result) { die("Query to show fields from table failed"); } $fields_num = mysql_num_fields($result); echo "<h1>Table: {$table}</h1>"; echo "<table border='1'><tr>"; // printing table headers for($i=0; $i<$fields_num; $i++) { $field = mysql_fetch_field($result); echo "<td>{$field->name}</td>"; } echo "</tr>\n"; // printing table rows while($row = mysql_fetch_row($result)) { echo "<tr>"; // $row is array... foreach( .. ) puts every element // of $row to $cell variable foreach($row as $cell) echo "<td>$cell</td>"; echo "</tr>\n"; } mysql_free_result($result); ?> ωραία, δουλεύει αλλά το πεδίο 1 έχει ως εξής : άμα επιθυμώ να φτιάξω ένα άλλο .php αρχείο όπου θα έχει συγκεκριμένες μόνο μεταβλητές λ.χ μόνο id, lastname δεν ξέρρω πως να το γράψω σε κώδικα και θα ήθελα ένα ρομποτάκι θα ήταν ιδανικό εάν στην σελίδα με τον πίνακα υπήρχε checkbox δίπλα σε κάθε μεταβλητή και κουμπί το οποίο θα κατασκεύαζε άμεσα τον νέο πίνακα, θα τον καταχωρούσε στη βάση δεδομένων, θα του έδινε σαν όνομα : "τρέχουσαημερομηνία_name_lastname_amka" __________________________________________________________________________________________________________________ επίσης βρήκα κώδικα για να κάμω update στον πίνακα και δύναμαι να προσθέσω επιτυχώς νέες καταχωρήσεις και μάλιστα χωρίς dublicate entries !! με παίδεψε να ομολογήσω, huh ο κώδικας συνίσταται σε δύο αρχεία το ένα με την φόρμα και το άλλο ως update.php <?php $host="xxxx"; // Host name $username="xxxx"; // Mysql username $password="xxxx"; // Mysql password $db_name="xxxx"; // Database name $table = 'test_mysql'; // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $term = $_POST['term']; ?> <form method="post" action="update.php" <br/><br/><br/> name:<br/> <input type="text" name="name" size="40" /><br/> lastname:<br/> <input type="text" name="lastname" size="40" /><br/> email:<br/> <input type="text" name="email" size="40" /><br/> phone:<br/> <input type="text" name="phone" size="40" /><br/> cellphone:<br/> <input type="text" name="cellphone" size="40" /><br/> asfaleia:<br/> <input type="text" name="asfaleia" size="40" /><br/> Imerominia:<br/> <input type="text" name="Imerominia" size="40" /><br/> nosileia:<br/> <input type="text" name="nosileia" size="40" /><br/> followup:<br/> <input type="text" name="followup" size="40" /><br/> <input type="submit" value="Update Database" /> </form> το αρχείο update είναι το εξής : <?php $host="χχχχ"; // Host name $username="χχχχ"; // Mysql username $password="χχχχ"; // Mysql password $db_name="χχχχ"; // Database name $table = 'κκκκκκκ'; $name = $_POST['name']; $lastname = $_POST['lastname']; $email = $_POST['email']; $phone = $_POST['phone']; $cellphone = $_POST['cellphone']; $asfaleia = $_POST['asfaleia']; $Imerominia = $_POST['Imerominia']; $nosileia = $_POST['nosileia']; $followup = $_POST['followup']; $number_of_rows = mysql_num_rows(mysql_query("SELECT * FROM test_mysql WHERE name='$name' AND lastname='$lastname' AND asfaleia='$asfaleia' " )); if($number_of_rows > 0) { // print an error and return echo "<a href=\"forn updating test_mysql.php\">Νέα καταχώρηση </a>"; } else { $query="INSERT INTO test_mysql (name, lastname, email, phone, cellphone, asfaleia, Imerominia, nosileia, followup) VALUES( '$_POST[name]', '$_POST[lastname]', '$_POST', '$_POST[phone]', '$_POST[cellphone]', '$_POST[asfaleia]', '$_POST[imerominia]', '$_POST[nosileia]', '$_POST[followup]' )"; } mysql_query($query) or die ('γράψε λάθος'); echo "Κατοχυρώθηκε επιτυχώς : " ?> <br/><br/><br/> <? echo "<a href=\"forn updating test_mysql.php\">Νέα καταχώρηση</a>"; ?> το πεδιό 2 έχει ως εξής : δεν μπορώ να βρώ τον τρόπο να κατασκευάσω ένα αντίστοιχο ρομποτάκι το οποίο θα κάμει την ακριβώς αντίθετη λειτουργία, δηλαδεί να διαγράφει μια ολόκληρη στήλη ή μια ολόκληρη γραμμή ή συνδυασμό γραμμών ή στηλών από τον εν λόγω πίνακα. Και σαφώς αποζητώ την Σοφία και την Μεθοδικότητα των μελών του φόρουμ ______________________________________________________________________________________________________________ βρήκα στο διαδίκτυο ένα κομμάτι κώδικα όπου ψάχνει στον πίνακα έναν όρο και άμα υφίσταται μου δίνει τα αποτελέσματα σε μια νέα σελίδα το πρόβλημα είναι ότι αναγνωρίζει μόνο μια μεταβλητή έστων την name το τρίτο λοιπόν πεδίο έχει ως εξής : ένα ρπμποτάκι που θα μου βγάζει σε μια σελίδα : τόσα κουτιά input όσες και οι μεταβλητές στον πίνακα ώστε άν δώσω στο συγκεκριμένο searchbox την πληροφορία να μου βγάλει τα αποτελέσματα ο nonflexible κώδικας μου κατόρθωσα να συντάξω έχει ως εξής : στο ένα αρχείο : <form action="search.php" method="post" target="_blank"> Search: <input type="text" name="term" /><br /> <input type="submit" name="submit" value="Submit" /> </form> και στο αρχείο search.php : $term = $_POST['term']; $sql = mysql_query("select * from test_mysql where name like '%$term%'"); while ($row = mysql_fetch_array($sql)){ echo 'ID: '.$row['ID']; echo '<br/> First Name: '.$row['name']; echo '<br/> Last Name: '.$row['lastname']; echo '<br/> Phone: '.$row['phone']; echo '<br/><br/>'; } ______________________________________________________________________________________________________________________ και τέλος αναζητώ 2 ακόμη ρομποτάκια : Α.. άν έχω μια σειρά από form check boxes, όταν θα κάμω submit να έχει φτιάξει μια function η οποία να αποστέλλει email σε συγκεκριμένο μέϊλ στο οποίο όμως email να περιέχεται όχι απλά κείμενο ή κείμενο και atachment αλλά συνδυασμός κειμένου μαζί με τα names των checkboxes στα οποία έγινε submit λ.χ μπλα βλα βλα value1, βλα βλα βλα βλα value2 , value3 βλα βλα βλα βλα βλα βλα ο κώδικας που κατάφερα να φτιάξω έχει ως εξής : <? $box=$_POST['box']; echo "<form method=post action=''>"; echo "<table border='0' cellspacing='0' style='border-collapse: collapse' width='100' > <tr bgcolor='#ffffff'> <td width='25%'><input type=checkbox name=box[] value='John'></td> <td width='25%'> John</td> <td width='25%'><input type=checkbox name=box[] value='Mike'></td> <td width='25%'> Mike</td> <td width='25%'><input type=checkbox name=box[] value='Rone'></td> <td width='25%'> Rone</td> </tr> <tr bgcolor='#f1f1f1'> <td width='25%'><input type=checkbox name=box[] value='Mathew'></td> <td width='25%'> Mathew</td> <td width='25%'><input type=checkbox name=box[] value='Reid'></td> <td width='25%'> Reid</td> <td width='25%'><input type=checkbox name=box[] value='Simon'></td> <td width='25%'> Simon</td> </tr> <tr><td colspan =6 align=center><input type=submit value=Select></form></td></tr> </table>"; while (list ($key,$val ) = @each ($box)) { echo "$val,"; } ?> αλλά απλά τυπώνει τα submited values όλα μαζί και αυτό είναι ένα θέμα ____________________________________________________________________________________ και τέλος πως μπορώ να προσθέσω μια template / or theme δεν ξέρρω αν ζητώ υπερβολικά πολλές πληροφορίες αλλα θα εκτιμούσα μια βοήθεια ρε σεις παίδες φιλικά, kdiwavvou
dewn735 Δημοσ. 14 Μαΐου 2011 Δημοσ. 14 Μαΐου 2011 Αυτό είναι το link για μελέτη που ψάχνεις: http://www.w3schools...mysql_intro.asp άμα επιθυμώ να φτιάξω ένα άλλο .php αρχείο όπου θα έχει συγκεκριμένες μόνο μεταβλητές λ.χ μόνο id, lastname δεν ξέρρω πως να το γράψω σε κώδικα και θα ήθελα ένα ρομποτάκι Το πρώτο σου αρχείο θα γίνει κάπως έτσι: ><?php $host = "xxx"; // Host name $username = "xxx"; // Mysql username $password = "xxx"; // Mysql password $db_name = "xxx"; // Database name $table = 'test_mysql'; // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); //Επιλέγεις μόνο τα πεδία που σε ενδιαφέρουν. Εδώ, τα έχουμε επιλέξει όλα... $sql = "SELECT id, name, lastname, phone, cellphone, email, amka, adress, comingdate, leavingdate FROM $table"; $result = mysql_query($sql); if (!$result) { die("Query to show fields from table failed"); } echo "<h1>Table: {$table}</h1>"; echo "<table border='1'><tr>"; echo "<td>Διαγραφή</td>"; // printing table headers $fields_num = mysql_num_fields($result); for ($i = 0; $i < $fields_num; $i++) { $field = mysql_fetch_field($result); echo "<td>{$field->name}</td>"; } echo "</tr>\n"; // printing table rows while ($row = mysql_fetch_row($result)) { echo "<tr>"; //Βάζουμε ένα link για τη διαγραφή της κάθε γραμμής echo "<td><a href='delete.php?id=".$row[0]."'>Διαγραφή</a></td>"; foreach ($row as $cell) echo "<td>$cell</td>"; echo "</tr>\n"; } mysql_free_result($result); ?> δεν μπορώ να βρώ τον τρόπο να κατασκευάσω ένα αντίστοιχο ρομποτάκι το οποίο θα κάμει την ακριβώς αντίθετη λειτουργία, δηλαδεί να διαγράφει μια ολόκληρη γραμμή από τον εν λόγω πίνακα Μαζί με την αλλαγή στο προηγούμενο αρχείο, φτιάχνεις και το delete.php: ><?php $host = "xxx"; // Host name $username = "xxx"; // Mysql username $password = "xxx"; // Mysql password $db_name = "xxx"; // Database name $table = 'test_mysql'; // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $id=$_GET['id']; $sql="DELETE FROM custs WHERE id = ".$id; if(mysql_query($sql)) header('Location: list_records.php'); else echo "Error in sql: ".$sql; ?> ένα ρπμποτάκι που θα μου βγάζει σε μια σελίδα : τόσα κουτιά input όσες και οι μεταβλητές στον πίνακα ώστε άν δώσω στο συγκεκριμένο searchbox την πληροφορία να μου βγάλει τα αποτελέσματα Κάπως έτσι: ><form action="search.php" method="post"> Search: <input type="text" name="term" /><br /> <input type="checkbox" name="search[]" value="0" />Αναζήτηση στο όνομα <input type="checkbox" name="search[]" value="1" />Αναζήτηση στο επώνυμο <input type="checkbox" name="search[]" value="2" />Αναζήτηση στη διεύθυνση <input type="submit" name="submit" value="Submit" /> </form> και ><?php $host = "xxx"; // Host name $username = "xxx"; // Mysql username $password = "xxx"; // Mysql password $db_name = "xxx"; // Database name $table = 'test_mysql'; // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $term = $_POST['term']; //Για να κάνεις αναζήτηση και σε άλλα πεδία, θα χρησιμοποιήσεις την OR (ή την AND, ανάλογα τη περίπτωση) $sql = "select * from test_mysql where "; if (ISSET ($_POST[search][0])) $sql.="name like '%$term%' OR "; if (ISSET ($_POST[search][1])) $sql.="surname like '%$term%' OR "; if (ISSET ($_POST[search][2])) $sql.="address like '%$term%' OR "; $sql.=" 0 = 1"; $res=mysql_query($sql); while ($row = mysql_fetch_array($res)){ echo 'ID: '.$row['ID']; echo '<br/> First Name: '.$row['name']; echo '<br/> Last Name: '.$row['lastname']; echo '<br/> Phone: '.$row['phone']; echo '<br/><br/>'; } ?> άν έχω μια σειρά από form check boxes, όταν θα κάμω submit να έχει φτιάξει μια function η οποία να αποστέλλει email σε συγκεκριμένο μέϊλστο οποίο όμως email να περιέχεται όχι απλά κείμενο ή κείμενο και atachment αλλά Δε ξέρω τι εννοείς εδώ και τέλος πως μπορώ να προσθέσω μια template / or theme Υπάρχουν έτοιμα στο ίντερνετ, διάλεξε αυτό που σου αρέσει και φέρτο στα μέτρα σου
andidoros Δημοσ. 30 Μαΐου 2011 Μέλος Δημοσ. 30 Μαΐου 2011 παιδιά ευχαριστώ πάρα πολύ αλλά προέκυψαν και άλλες δυσκολίες πάνω κάτω έστησα το πρόγραμμα, φτιάχνει πίνακες, καταργεί πίνακες ή γραμμές ή στήλες, στέλνει e-mail tο πρόβλημα τώρα είναι το εξής : αν υποθέσουμε ότι θέλουμε να αναζητήσει συγκεκριμένες περιπτώσεις / [ με περιορισμούς ] ψάχνωντας από έναν πίνακα έστω στην στήλη τάδε οι τιμές είναι τουλάχιστο τέσσερις > echo "<br/><br/>"; $clinic1 = "ΠΡΠ" ; $clinic2 = "ΑΠ" ; $clinic3 = "ΠΡΧ" ; $clinic4 = "ΓΧ" ; echo '<form form action= "______x_show_tables__4____b__teliko_mia_metavliti.php" method= "post" target= "_self" >'; echo '<input type="checkbox" name="clinic1" value="ΠΡΠ"> ' . $clinic1 . ' ' ; echo '<input type="checkbox" name="clinic2" value="ΑΠ"> ' . $clinic2 . ' ' ; echo '<input type="checkbox" name="clinic3" value="ΠΡΧ"> ' . $clinic3 . ' ' ; echo '<input type="checkbox" name="clinic4" value="ΓΧ"> ' . $clinic4 . ' ' ; echo ' <input type= "submit" class="_aera" name="lola" value="symperilamvanontai periptvseiseis twn klinikwn" /> '; echo "</form>"; επειδή δεν ξέρρω προγραμματισμό έκαμα μια μπαγαποντιά : έγραψα τον κώδικα όπου ο χρήστης επιθυμεί όλες τις περιπτώσεις : > if (isset ( $_POST['clinic1'] ) && ( $_POST['clinic2'] ) && ( $_POST['clinic3'] ) && ( $_POST['clinic4'] ) ) { $clinic1 = "ΠΡΠ" ; $clinic2 = "ΑΠ" ; $clinic3 = "ΠΡΧ" ; $clinic4 = "ΓΧ" ; $result = mysql_query( " SELECT * FROM all_patients WHERE (clinic_authorised = '$clinic1') OR (clinic_authorised = '$clinic2') OR (clinic_authorised = '$clinic3') OR (clinic_authorised = '$clinic4') " ); echo "<br/><br/><br/>"; $resultdatabase = mysql_list_tables("a3936262_cico"); $rcount = mysql_num_rows($resultdatabase); while ($row = mysql_fetch_array($result , MYSQL_ASSOC)) { echo '<table width="90%" border="1" cellspacing="0" cellpadding="0"> <tr> <td> ID: ' .$row['id'] . '</td> <td>' . $row['date_of_exam'] . '</td> <td>' . $row['clinic_authorised'] . '</td>' . ' </tr></table>' ; } } και μετά υπολόγισα με χαρτί και μολύβι τους πιθανούς συνδυασμούς : 1 2 3 4 1,2 1,3 1,4 2,3 2,4 3,4 1,2,3 1,2,4 1,3,4 2,3,4 1,2,3,4 δηλαδή των αριθμό των checkboxes που δυνατό να επιθυμεί ο χρήστης να τσεκάρει στην συνέχεια έκαμνα copy paste toν ίδιο κώδικα αλλάζοντας την if statement και αλλάζοντας την value στις μη επιθυμητές μεταβλητές περιπτώσεις για παράδειγμα στην περίπτωση που θέλω μόνο τις περιπτώσεις με 2,3,4 ο κώδικας είναι ο εξής : >else if (isset ( $_POST['clinic2'] ) && ( $_POST['clinic3'] ) && ( $_POST['clinic4'] ) ) { $clinic1 = "" ; $clinic2 = "ΑΠ" ; $clinic3 = "ΠΡΧ" ; $clinic4 = "ΓΧ" ; $result = mysql_query( " SELECT * FROM all_patients WHERE (clinic_authorised = '$clinic1') OR (clinic_authorised = '$clinic2') OR (clinic_authorised = '$clinic3') OR (clinic_authorised = '$clinic4') " ); echo "<br/><br/><br/>"; $resultdatabase = mysql_list_tables("a3936262_cico"); $rcount = mysql_num_rows($resultdatabase); while ($row = mysql_fetch_array($result , MYSQL_ASSOC)) { echo '<table width="90%" border="1" cellspacing="0" cellpadding="0"> <tr> <td> ID: ' .$row['id'] . '</td> <td>' . $row['date_of_exam'] . '</td> <td>' . $row['clinic_authorised'] . '</td>' . ' </tr></table>' ; } } έκμανα δηλαδή προσθαφαίρεση στα $_POST[''] και στα $clinic1 = "" μάλλον θα καταλάβατε τι αποζητώ : έναν τρόπο να γίνονται όλα αυτά αυτόματα αφού το ζητούμενο είναι να υπάρχει δυνατότητα για επιλογή περιπτώσεων από πλέον της μιας στήλης του πίνακα και προφανώς η κάθε στήλη θα έχει πλέον των τεσσάρων διαφορετικών επιλογών προκαταβολικά thanks a lot
macabre_sunsets Δημοσ. 30 Μαΐου 2011 Δημοσ. 30 Μαΐου 2011 >echo "<br/><br/>"; $clinic1 = "ΠΡΠ" ; $clinic2 = "ΑΠ" ; $clinic3 = "ΠΡΧ" ; $clinic4 = "ΓΧ" ; echo '<form form action= "______x_show_tables__4____b__teliko_mia_metavliti.php" method= "post" target= "_self" >'; echo '<input type="checkbox" name="clinic[]" value="ΠΡΠ"> ' . $clinic1 . ' ' ; echo '<input type="checkbox" name="clinic[]" value="ΑΠ"> ' . $clinic2 . ' ' ; echo '<input type="checkbox" name="clinic[]" value="ΠΡΧ"> ' . $clinic3 . ' ' ; echo '<input type="checkbox" name="clinic[]" value="ΓΧ"> ' . $clinic4 . ' ' ; echo ' <input type= "submit" class="_aera" name="lola" value="symperilamvanontai periptvseiseis twn klinikwn" /> '; echo "</form>"; > if (isset ( $_POST['clinic'] ) ) { $clinics = $_POST['clinic']; $result = mysql_query( " SELECT * FROM all_patients WHERE clinic_authorised IN ($clinics))" ); echo "<br/><br/><br/>"; $resultdatabase = mysql_list_tables("a3936262_cico"); $rcount = mysql_num_rows($resultdatabase); while ($row = mysql_fetch_array($result , MYSQL_ASSOC)) { echo '<table width="90%" border="1" cellspacing="0" cellpadding="0"> <tr> <td> ID: ' .$row['id'] . '</td> <td>' . $row['date_of_exam'] . '</td> <td>' . $row['clinic_authorised'] . '</td>' . ' </tr></table>' ; } } Δοκίμασε κάτι σαν το παραπάνω. Δεν το έχω δοκιμάσει αν παίζει.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.