2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

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

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

Απάντηση
katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από katerinaaa » 01 Ιούλ 2010 14:52

Γιεα σας,
έχω φτιάξει κάποιους τυχαία παραγόμενους πίνακες που αφορούν όνομα και κωδικό.
Τα στοιχεία αυτά εκτυπώνονται μια χαρά όταν δοκιμάζω να τα εκτυπώσω.

Αλλά κάποιο λάθος κάνω στη σύνταξη της γλώσσας όταν πάω να τα εισαγάγω στη βάση μου.

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

<?php
for &#40;$j=1; $j<=20; $j++&#41;
&#123;	
	mysql_query&#40;"INSERT INTO user &#40;username,pass,em,tel&#41; 
					values&#40;'" .$usernames&#91;$j&#93;. "','" .$passward&#91;$j&#93;. "','" .$email&#91;$j&#93;. "','" .$telephone&#91;$j&#93;."'&#41;"  
	&#41;;																															
&#125;
?>

Και ένα δεύτερο ερώτημα
θέλω ουσιαστικά να προσθέσω μόνο την πρώτη φορά που θα μπω στην αρχική σελίδα του site αυτούς τους χρήστες, όχι όποτε μπαίνω στην αρχική να μου ξαναπροσθέτει άλλους τόσους τυχαία.
Πως μπορώ να κάνω κάτι τέτοιο ??
Θα προτιμούσα όχι λύση πχ φτιάξε μια index η οποία θα καλείται αρχικά και μετά θα μεταβαίνεις αυτόματα στην index2 οπότε κάθε επιστροφή να είναι μετά στην ιndex2.
Κάτι πιο πρακτικό ?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από burnmind » 01 Ιούλ 2010 15:43

Τι error σου βγάζει;

Κατ'αρχήν μήπως ήθελες να γράψεις $password αντί για $passward;

Επίσης, βάλε το query σε μία μεταβλητή και κάντου ένα echo πριν το τρέξεις για να δεις αν είναι αυτό που θέλεις.

Όσο για το επόμενο ερώτημά σου, αφού θέλεις να το κάνεις μόνο μία φορά γενικά (και όχι μία φορά ανά χρήστη κλπ) τότε η καλύτερη λύση θα ήταν να αφήσεις το site όπως είναι και να τρέξεις χειροκίνητα ένα ξεχωριστό script που θα σου δημιουργήσει τους χρήστες.

Αν θες να γίνει παραπάνω από μία φορές, τότε μπορείς για παράδειγμα να έχεις ένα boolean πεδίο στη βάση και κατά το login (ή με ένα δικό του query στην αρχή) να ελέγχεις αν έχει γίνει η εισαγωγή που θέλεις. Βέβαια αν εξηγήσεις καλύτερα τι θέλεις να πετύχεις, όλο και κάποιος θα σου δώσει μια συγκεκριμένη απάντηση.

katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από katerinaaa » 01 Ιούλ 2010 20:21

Δεν εμφανίζει κάποιο error απλα δεν κάνει την εισαγωγή στη βάση.
Να δώσω όλο τον κώδικα μήπως γίνει κατανοητό το λάθος :

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

<?php
$link = mysql_connect&#40;'localhost', 'root', ''&#41;;
if &#40;!$link&#41; &#123;
    die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
&#125;
mysql_select_db&#40;'vash'&#41;;



function rand_string&#40; $length, $mode&#41; 
&#123;
	if&#40;$mode == 1&#41;
		$chars =  "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	else if&#40;$mode == 2&#41;
		$chars =  "0123456789";
	else if&#40;$mode == 3&#41;
		$chars =  "abcdefghijklmnopqrstuvwxyz";
		
	$size = strlen&#40; $chars &#41;;
	for&#40; $i = 0; $i < $length; $i++ &#41; &#123;
		$str .= $chars&#91; rand&#40; 0, $size - 1 &#41; &#93;;
	&#125;

	return $str;
&#125;


for &#40;$i=1; $i<=20; $i++&#41;
&#123;    
	if&#40;$i<10&#41;
		$usernames&#91;$i&#93; = "user0" .$i ;
	else
		$usernames&#91;$i&#93; = "user" .$i ;
	
	
	$passwords&#91;$i&#93; = $usernames&#91;$i&#93;; 
	$emails&#91;$i&#93; = rand_string&#40;8,1&#41; . '@' . rand_string&#40;4,3&#41; . '.' . 'gr'; 
	$telephones&#91;$i&#93; = rand_string&#40;10,2&#41;;	

//test echo
echo $usernames&#91;$i&#93; . "&nbsp;&nbsp;&nbsp;" .$passwords&#91;$i&#93; . "&nbsp;&nbsp;&nbsp;" .$emails&#91;$i&#93; . "&nbsp;&nbsp;&nbsp;" . $telephones&#91;$i&#93; . "<br>" ;
&#125;


for &#40;$j=1; $j<=20; $j++&#41;
&#123;	
	$p = mysql_query&#40;"INSERT INTO user &#40;username,password,e_mail,phone_number&#41; 
					values &#40;" . '$usernames&#91;$j&#93;' . "," . '$passwords&#91;$j&#93;' . "," .  '$emails&#91;$j&#93;' . "," . '$telephones&#91;$j&#93;' . "&#41;"
			    &#41;;	
	
	echo $p ;
&#125;
?>
Δοκιμάζοντας να εκτυπώσω το query δεν εκτυπώνεται κάτι.


======================

όσο για το δεύτερο ερώτημα εννοείς να σβήσω την index που έχω τώρα να βάλω το script σε μια νεα index και μετά να επαναφέρω τη παλιά ?



Ευχαριστώ πολύ για την απάντηση

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από burnmind » 01 Ιούλ 2010 22:20

katerinaaa έγραψε:Δοκιμάζοντας να εκτυπώσω το query δεν εκτυπώνεται κάτι.
Κάντο έτσι:

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

$query = "INSERT INTO user &#40;username,password,e_mail,phone_number&#41; values &#40;" . '$usernames&#91;$j&#93;' . "," . '$passwords&#91;$j&#93;' . "," .  '$emails&#91;$j&#93;' . "," . '$telephones&#91;$j&#93;' . "&#41;";

mysql_query&#40;$query&#41;;

echo $query;
Και δες αν το query που παράγεται είναι σωστό. Δοκίμασε να το τρέξεις και χειροκίνητα στη βάση (π.χ. μέσω του phpMyAdmin) για να δεις τι error σου βγάζει.

Το phone_number στη βάση είναι int ή varchar; Αν ειναι int βγάλε τα '' στο $telephones.
katerinaaa έγραψε:όσο για το δεύτερο ερώτημα εννοείς να σβήσω την index που έχω τώρα να βάλω το script σε μια νεα index και μετά να επαναφέρω τη παλιά ?
Δεν έχεις εξηγήσει τι θέλεις να κάνεις, οπότε υποθέτω πως φτιάχεις μια εφαρμογή και θέλεις απλά να δημιουργήσεις στα γρήγορα μερικούς random users. Αυτό λοιπόν δεν έχει σχέση με την υπόλοιπη εφαρμογή για να το ενσωματώσεις στον κώδικά της, οπότε απλά φτιάξε ένα ξεχωριστό script, βάλτο πχ στο αρχείο insert_users.php και απλά τρέξτο μία φορά για να τους εισάγεις. Μετά σβήστο, ή κάντο ό,τι θες, δε σε ενδιαφέρει. Φυσικά μπορεί να έχω καταλάβει λάθος το τι ζητάς, οπότε διευκρίνησε.

katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από katerinaaa » 01 Ιούλ 2010 22:56

Ευχαριστώ πολύ burNMind είχα λάθη στα αυτάκια.
εντάξει δούλεψε μια χαρά.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

2 ερωτήσεις για php πρόβλημα εισαγωγής σε βάση

Δημοσίευση από Banavas » 01 Ιούλ 2010 23:17

Για να δείτε εύκολα και γρήγορα το παραγώμενο λάθος της mysql γράψτε αυτό:

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

mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41; ;
μετά τον έλεγχο το αφαιρείτε.
Happy coding....
Μάρκος
http://lasernet.gr

Απάντηση

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

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

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