Προς το περιεχόμενο

σχετικά με το php


andidoros

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπέρα :

δεν έχω ασχοληθεί με προγραμματισμό από τότε που έπαιζα σε 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 κώδικας μου κατόρθωσα να συντάξω έχει ως εξής :

 

 

 

 

______________________________________________________________________________________________________________________

 

 

και τέλος αναζητώ 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

Δημοσ.

Αυτό είναι το 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

Υπάρχουν έτοιμα στο ίντερνετ, διάλεξε αυτό που σου αρέσει και φέρτο στα μέτρα σου

  • 3 εβδομάδες αργότερα...
Δημοσ.

παιδιά ευχαριστώ πάρα πολύ αλλά προέκυψαν και άλλες δυσκολίες

 

πάνω κάτω έστησα το πρόγραμμα, φτιάχνει πίνακες, καταργεί πίνακες ή γραμμές ή στήλες, στέλνει 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

Δημοσ.

>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>'
 
  ;		  }  	


}



 

Δοκίμασε κάτι σαν το παραπάνω. Δεν το έχω δοκιμάσει αν παίζει.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...