[php/mysql] Simpele Query wil niet werken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met het leren van een beetje php en mysql
Nou heb ik een scriptje gemaakt die wat gegevens invoerd. (dat gaat prima)
de resulaten weergeven lukt ook.

Tijdens het aanmaken van een record in de mysql database wordt er een
"ID" nummer meegegeven

Nu wil ik dat ID nummer aan de user geven die deze entry heeft gemaakt, maar het wil niet lukken ik heb het volgende allemaal geprobeerd.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ---------------------------------------------------------------
// Username uit formulier omzetten

    $naam = 

// Maak SQL Query om id nummer weer te geven
    $url = "SELECT ID FROM adresboek WHERE Naam = '$naam'";


// Voer SQL uit (ID weergave)
$link = mysql_query($url) or die (mysql_error());  

// Geef bevestiging 
echo "<BR><BR>$_POST[Naam] Je persoonlijke ID = $link";


Ik krijg als resultaat constant:
"*naam* Je persoonlijke ID = Resource id #4"

Ook als ik het zo probeer


code:
1
2
3
4
5
6
7
8
9
10
// ---------------------------------------------------------------
// Maak SQL Query om id nummer weer te geven
    $url = "SELECT ID FROM adresboek WHERE Naam = '$_POST[Naam]'";


// Voer SQL uit (ID weergave)
$link = mysql_query($url) or die (mysql_error());  

// Geef bevestiging 
echo "<BR><BR>$_POST[Naam] Je persoonlijke ID = $link";



Ik heb van alles geprobeerd maar mij lukt het niet. Wie ziet misschien waar het fout gaat ?

code:
1
$url = "SELECT ID FROM adresboek WHERE Naam = '$_POST[Naam]'";

Als ik "ID" vervang door een andere naam van een kolom uit mijn sql Tabel, bijvoorbeeld "Huisnummer" dan krijg ik het zelfde probleem.

Acties:
  • 0 Henk 'm!

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 26-04-2024
Je query is niet fout, je vergeet een stap bij het ophalen van de data. Zoek in de mysql-documentatie eens naar mysql_fetch_object of mysql_fetch_row :)

[ Voor 3% gewijzigd door ludo op 31-05-2003 20:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt (dan weet ik in iedergeval waar ik moet zoeken)

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
// ---------------------------------------------------------------
// Maak SQL Query om id nummer weer te geven
    $url = "SELECT ID FROM adresboek WHERE Naam = '$_POST[Naam]'";


// Voer SQL uit (ID weergave)
$link = mysql_query($url) or die (mysql_error());  
$record = mysql_fetch_object($link);
// Geef bevestiging 
echo "<BR><BR>$_POST[Naam] Je persoonlijke ID = $link->ID";


Maar wat je ook kunt gebruiken is mysql_insert_id() na het runnen van een "insert" query :)

[ Voor 32% gewijzigd door Verwijderd op 31-05-2003 20:16 ]


Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
Quote named variablen ;)

$_POST["naam"]

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 31 mei 2003 @ 20:15:
PHP:
1
2
3
4
5
6
7
8
9
10
// ---------------------------------------------------------------
// Maak SQL Query om id nummer weer te geven
    $url = "SELECT ID FROM adresboek WHERE Naam = '$_POST[Naam]'";


// Voer SQL uit (ID weergave)
$link = mysql_query($url) or die (mysql_error());  
$record = mysql_fetch_object($link);
// Geef bevestiging 
echo "<BR><BR>$_POST[Naam] Je persoonlijke ID = $link->ID";
Bedankt, ik kwam net terug om te melden dat het me zelf ook is gelukt, ik heb een iets andere constructie maar ik zie dat het op het zelfde neerkomt

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
// Maak SQL Query om id nummer weer te geven
    $url = "SELECT ID FROM adresboek WHERE Naam = '$_POST[Naam]'";


// Voer SQL uit (ID weergave)
$link = mysql_query($url) or die (mysql_error());  

// Maak een variabele van de tabel info 
while($data = mysql_fetch_object($link)){ 
$id = "$data->ID"; 

// Geef bevestiging 
echo "<BR><BR>$_POST[Naam] Je persoonlijnlijke ID = $id";


(ik zie dat de "}" om de while lus aftesluiten is weggevallen (maar in mijn document staat hij wel)
Maar wat je ook kunt gebruiken is mysql_insert_id() na het runnen van een "insert" query :)
Zal ik zeker nog even naar kijken

[ Voor 10% gewijzigd door Verwijderd op 31-05-2003 20:32 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
SWINX schreef op 31 mei 2003 @ 20:18:
Quote named variablen ;)

$_POST["naam"]
Ik snap niet precies wat je hier mee wilt zeggen ?
beweer je hiermee dat als ik $_POST["naam"] zou gebruiken in plaats van $_POST[naam] dat ik dit probleem niet zou hebben gehad ?

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
Verwijderd schreef op 31 mei 2003 @ 20:33:
[...]

Ik snap niet precies wat je hier mee wilt zeggen ?
beweer je hiermee dat als ik $_POST["naam"] zou gebruiken in plaats van $_POST[naam] dat ik dit probleem niet zou hebben gehad ?
Je code wordt er duidelijker op. :) Als het goed is maakt het niet uit, maar het is gewoon netter. (En als iedereen hetzelfde gebruikt snappen we elkaar beter en sneller)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Owke duidelijk, zal er voortaan op proberen te letten Thanx ;)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Sybr_E-N schreef op 31 May 2003 @ 20:37:
Je code wordt er duidelijker op. :) Als het goed is maakt het niet uit, maar het is gewoon netter. (En als iedereen hetzelfde gebruikt snappen we elkaar beter en sneller)
In dit geval heb je ongelijk :)

"$array[a] != $array['a']"; :)

Maar het is daar weer netter om het zo te doen:
"{$array['a']} == $array[a]"; De eerste variant vind ik dus mooier.

Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
Sybr_E-N schreef op 31 May 2003 @ 20:37:
[...]


Je code wordt er duidelijker op. :) Als het goed is maakt het niet uit, maar het is gewoon netter. (En als iedereen hetzelfde gebruikt snappen we elkaar beter en sneller)
duidelijker... Zeker niet
Als je een zeer lange query hebt (insert of update) dan kan je uren lang zoeken waar een quote fout staat. Ik deed het vroeger wel maar ik ben er van afgestapt omdat het juist kloteriger leest en gevoeliger is voor fouten.

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

Verwijderd

Sybr_E-N schreef op 31 May 2003 @ 20:37:
[...]


Je code wordt er duidelijker op. :) Als het goed is maakt het niet uit, maar het is gewoon netter. (En als iedereen hetzelfde gebruikt snappen we elkaar beter en sneller)
Zeg dan gelijk waarom dat mooier staat.

Variables, dus gewone waardes moeten gewoon altijd gequoted worden.
Integers en floating points, cijfers of bedragen (blabla) hoeven niet gequoted te worden.

Dit om gewoon onderscheit te maken tussen verschillende variables.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

cybermans schreef op 31 May 2003 @ 22:13:
duidelijker... Zeker niet
Als je een zeer lange query hebt (insert of update) dan kan je uren lang zoeken waar een quote fout staat. Ik deed het vroeger wel maar ik ben er van afgestapt omdat het juist kloteriger leest en gevoeliger is voor fouten.
Ik snap jouw opmerking niet helemaal:

PHP:
1
2
3
4
5
6
7
8
<?
$array[index]; // dit is niet 'lelijk' of 'minder mooi', maar gewoon fout.
$array['index']; // is wel correct
"tekst $array[index] tekst"; // dit is in principe correct, maar niet handig
"tekst $array[index][index2] tekst"; // dit gaat namelijk fout
"tekst " . $array['index']['index2'] . " tekst"; // Is wel goed, net als:
"tekst {$array['index']['index2']} tekst"; // deze
?>
Pagina: 1