probleme cu <select> si BD

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

tristu
PHPRomania Supporter
Mesaje: 26
Membru din: Mie Apr 16, 2008 9:21 pm

probleme cu <select> si BD

Mesajde tristu » Vin Dec 24, 2010 5:10 pm

Am codul urmator:

<select>
<option name="autovehicule" value="autovehicule">Autovehicule</option>
<option name="electronica" value="electronica">Electronica</option>
<option name="informatica" value="informatica">Informatica</option>
</select>

si am un tabel cu 3 coloane (autovehicule, electronica, informatica) si in functie de ce optiune aleg din select sa se memoreze un mesaj in coloana corespunzatoare optiunii alese. Asa incerc sa introduc dar nu merge:


if ($_POST['informatica'] = TRUE) {
//Introducem oferta si data in BD:
$insert = "INSERT INTO `tabel` (informatica)
VALUES ( '".$_POST['mesaj']."')";
$rezultat = mysql_query($insert);
//Daca inregistrarea este ok, echo:
if ($insert = TRUE) {
echo "Oferta a fost inregistrata in informatica cu succes.";
}
}


Toata inregistrarile in tabel le-am facut ca pe cea de mai sus.

Problema e ca in loc sa-mi adauge mesajul doar in coloana informatica ... mesajul respectiv este pus in fiecare coloana.

Nu cred ca e ok cum am pus conditia asta: $_POST['informatica'] = TRUE
(dar altfel nu stiu).

Ma puteti ajuta? ... chiar si cu sugestii.

Multumesc.



guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Vin Dec 24, 2010 5:23 pm

pai in primul rand nu cred ca e gandita bine baza ta de date....
mai bine faci 2 campuri in baza de date id si cat

iar adaugarea ta ar trebui sa fie asa :

html :
<select name="categorie">
<option value="autovehicule">Autovehicule</option>
<option value="electronica">Electronica</option>
<option value="informatica">Informatica</option>
</select>

php :
pui un error_reporting(E_ALL) la inceputul paginii de php ca sa vezi daca iti da vreo eroare cand nu merge scriptul.
if (!empty($_POST['categorie'])) {
//daca, categoria nu este goala se executa codul :
$insert = "INSERT INTO `tabel` (categorie)
VALUES ( '".$_POST['categorie']."')";
$rezultat = mysql_query($insert)or die (mysql_error());
//Daca inregistrarea este ok, echo:
if ($rezultat == TRUE) {
echo "Oferta a fost inregistrata in informatica cu succes.";
}
}

ar trebui sa mearga.

spint
Average Member
Mesaje: 150
Membru din: Joi Dec 03, 2009 10:23 am
Contact:

Mesajde spint » Sâm Dec 25, 2010 1:25 pm

O sotie buna isi iarta intotdeauna sotul atunci cand ea greseste
|

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Mesajde nevvermind » Sâm Dec 25, 2010 2:21 pm


tristu
PHPRomania Supporter
Mesaje: 26
Membru din: Mie Apr 16, 2008 9:21 pm

Mesajde tristu » Sâm Dec 25, 2010 4:40 pm

Ok ... am incercat cum a scris guppy ... si ok ... merge cum trebuie ... imi pune in coloana `categorie` valorile din <select>

Dar acum sunt umpic incurcat la afisare ... doresc sa afisez spre ex doar mesajele legate de informatica(face parte din coloana `categorie`) si am facut asa:

$select = mysql_query ('SELECT categorie FROM `tabel` WHERE categorie = "informatica"');
$rezultat = mysql_query ($select);

echo "<td bgcolor=".$culoare_celula.">".$numar.") ".$rand['mesaj']."<br /><a href='index.php?pag=redirectionare&id=".$rand['id']."' target = '_blank'>".$rand['titlu']."</a> - <font color='blue' size='2'>(vizualizari: ".$rand['vizite'].")</font><br /></td>\n";

<td> face parte dintr-un tabel care functioneaza ... si $rand[] intr-o alta interogare ... dar tot ce este in echo funtioneaza cu exceptia $rand['mesaj']

Cu alte cuvinte nu reusesc sa fac corespondenta intre cele doua coloane ale tabelului `categorie` si `mesaj`. Daca folosesc echo asa cum e aici imi afiseaza tot tabelul ... daca folosesc rezultatul interogarii $select si in loc de $rand['mesaj'] scriu spre ex $rand_select['mesaj']
atunci imi afiseaza tot tabelul dar fara mesaj.

Multumesc.[/b]

guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Sâm Dec 25, 2010 5:16 pm

nu prea am inteles dar uite ce te sfatuiesc :

dupa fiecare interogare foloeste mysql_error();
astfel vei vedea ce eroare iti da la interogare..cand nu iti merge....adica:

$result = mysql_query($sql) or die (mysql_error());

apoi cred ca ar fi bine sa citesti despre JOIN-uri, cu aceasta poti face legatura intre 2 tabele sau mai multe...

http://www.tutorialeonline.net/ro/artic ... right-join

tristu
PHPRomania Supporter
Mesaje: 26
Membru din: Mie Apr 16, 2008 9:21 pm

Mesajde tristu » Sâm Dec 25, 2010 5:49 pm

Apreciez efortul ... am intrat pe link sincer eu lucrez cu interfata phpmyadmin si in afara de creat tabele si BD nu prea stiu altceva asa ca da-mi voie sa mai incerc sa explic odata.

Am un tabel cu 2 coloane (pe langa id): `categorie` si `mesaj` ... si daca spre exemplu am un nr. n de id-uri in tabel din care idul 3 si 8 au `categorie`-informatica ... eu vreau sa afisez mesajele doar acelor 2 iduri care au categoria informatica.

Si eu am spus ca nu stiu cum sa fac corespondenta asta intre doua coloane ... schematic daca vrei nu stiu cum sa fac corespondeta intre:

`categorie`:informatica -->> `mesaj`: un mesaj corespunzator categoriei informatica

Sau poate nu am abordat corect problema ... poate ar trebui sa folosesc un tabel pentru informatica ... unul pentru electronica s.a.m.d ... ?

guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Sâm Dec 25, 2010 7:51 pm

$select = mysql_query ('SELECT * FROM `tabel` WHERE categorie = "informatica"');

* - inseamna all...adica sa selecteze tot din tabela `tabel`, tu ai specificat sa selecteze doar categorie

Avatar utilizator
Sim Master
Average Member
Mesaje: 189
Membru din: Dum Aug 22, 2010 4:31 pm
Localitate: Timisoara
Contact:

Mesajde Sim Master » Sâm Dec 25, 2010 7:55 pm


nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Mesajde nevvermind » Sâm Dec 25, 2010 8:09 pm


Avatar utilizator
Sim Master
Average Member
Mesaje: 189
Membru din: Dum Aug 22, 2010 4:31 pm
Localitate: Timisoara
Contact:

Mesajde Sim Master » Sâm Dec 25, 2010 10:17 pm

de fapt nu se mentionase si partea cu "while()" :)

Sonic3R
Average Member
Mesaje: 76
Membru din: Dum Dec 05, 2010 4:14 pm

Mesajde Sonic3R » Mar Dec 28, 2010 10:57 am



Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori