CodingA database for my data

 

Press Ctrl+Enter to quickly submit your post
Quick Reply  
 
 
  
 From:  ANT_THOMAS   
 To:  Peter (BOUGHTONP)     
35356.43 In reply to 35356.42 
Done, no worky :((

It now, as you would image imagine, looks like this with the backslashes, two needed I assume?

PHP code:
<a href='$prefix{$row['nmrn1']}/pdata/1/email_{$row['servercode']}_{$row['nmrn1']}_1.png' onclick=\"$j('img#spectra').attr('src','$prefix{$row['nmrn1']}/pdata/1/email_{$row['servercode']}_{$row['nmrn1']}_1.png').show(); return false\">{$row['nmre1']} #2</a>
<br />
<img id='spectra' src='' alt='' style='display:none;'/>
 
</span


Still opens the image directly and not within the page.

0/0
 Reply   Quote More 

Message 35356.44 deleted 30 Nov 2008 22:19 by BOFF

 From:  Peter (BOUGHTONP)  
 To:  ANT_THOMAS      
35356.45 In reply to 35356.43 
Ah, bloody PHP - you also need to escape the $ of $j with \

So, your first line now becomes:
PHP code:
<a href='$prefix{$row['nmrn1']}/pdata/1/email_{$row['servercode']}_{$row['nmrn1']}_1.png' onclick=\"\$j('img#spectra').attr('src', this.href ).show(); return false\">{$row['nmre1']} #2</a>

(That also has the second url replaced with this.href)

Once you've done that it'll work.
0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  Peter (BOUGHTONP)     
35356.46 In reply to 35356.45 
Yay, thank you for your persistence Peter!

0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  ALL
35356.47 
Right. It is all working very nicely now. I had missed the option in IrfanView for PDF to PNG batch conversions so that's all good except for the image quality being a bit poor, but nevermind.

I have a question tho. I want to pull, for example, 5 consecutive rows from my database. Sounds simple enough to me, but I can't get it working how I want.

Current code is...

PHP code:
$tableid = $_GET['id'];
$query  = "SELECT * FROM nmr LIMIT 5 OFFSET $tableid";
 


If id=5 then it gives me entry 5-9, as you would expect. Problem being, the first id in my database isn't 1 due to deleting a few, and if I was to delete entries at a later date even if the first one was 1 it would mess things up. So clearly this code is wrong and I realise this.

I can already get id from the address bar but I then want it to pull the record that has that id and the next 4 records. So the limit is 5 including the record with the id in the address bar.

I've searched and searched but had no luck :(

0/0
 Reply   Quote More 

 From:  andy  
 To:  ANT_THOMAS      
35356.48 In reply to 35356.47 

select * from nmr where id >= offset limit 5

 

edit: oh and you prob want a "order by id asc" just to make sure.

0/0
 Reply   Quote More 

 From:  Matt  
 To:  ANT_THOMAS      
35356.49 In reply to 35356.47 
php code:
$tableid = $_GET['id'];
$query  = "SELECT * FROM nmr WHERE id >= $tableid LIMIT 5";
 


Of course change the name of the id column, if it's different.

Also, if you're not already you should really be using mysql_escape_string / mysql_real_escape_string on the variables you take from $_GET / $_POST / $_COOKIE etc. to use in your queries, or you risk SQL injection.

I could for instance do:

http://www.yourdomain.com/script.php?id=;DELETE%20*%20FROM%20nmr

And empty your database for you.

doohicky

0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  Matt     
35356.50 In reply to 35356.49 
Thank you both of you.

Hmm, I think I should too because someone emptying my database would make me cry.

Would this be sufficient?

PHP code:
 
$getid = $_GET['id'];
$tableid = mysql_escape_string($getid);
$query  = "SELECT * FROM nmr WHERE id >= $tableid LIMIT 5";
 

0/0
 Reply   Quote More 

 From:  Peter (BOUGHTONP)  
 To:  ANT_THOMAS      
35356.51 In reply to 35356.50 
Why use two steps?

Simpler to just do this:
code:
$tableid = mysql_escape_string($_GET['id']);

?
0/0
 Reply   Quote More 

 From:  Matt  
 To:  ANT_THOMAS      
35356.52 In reply to 35356.50 
That will work fine.

Personally, if I'm expecting $_GET['id'] to be a number I would use PHP's is_numeric function to make sure that's what it is. If I'm expecting a string or an unknown data type then I'd use mysql_real_escape_string.

php code:
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
 
    // No need to escape via mysql_escape_string as we
    // know it's numeric from the is_numeric test in the
    // if statement.
    $table_id = $_GET['id'];
 
    // sprintf can also be used to sanitise input from a user,
    // but it can make code harder to read. In this example %d
    // requires the variable to be an integer. The other types
    // are listed on the manual page.
    $query  = sprintf("SELECT * FROM nmr WHERE id >= %d LIMIT 5", $table_id);
 
    // Rest of your code goes here
 
}else {
 
    // ID is not set in the URL query or it is not a number, show an error here?
 
}


If you want to write better PHP code, turn display_errors on and set error_reporting to E_ALL (both in php.ini) and you can see what PHP really thinks of your script.

doohicky

0/0
 Reply   Quote More 

 From:  Monsoir (PILOTDAN)  
 To:  ANT_THOMAS      
35356.53 In reply to 35356.47 
I'm still in bed so can't quite comprehend the issue, but do you just need to order them now? The query isn't interested in the missing numbers.
0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  ALL
35356.54 

Problem number something:

 

I have a load of the data I want in my database in the form of an Excel spreadsheet. I've now saved it as a CSV and removed all the lines already present. I thought I could import this using PHPMyAdmin but it turns out I can't. I've read that it's possible (from the PHPMA wiki of all places) but for me it only gives me the option to import SQL based files.

 

I've upgraded PHPMA versions from 2.11.6 to 3.1.0 with no luck.

 

How and where does one enable CSV imports/uploads?


0/0
 Reply   Quote More 

 From:  Peter (BOUGHTONP)  
 To:  ANT_THOMAS      
35356.55 In reply to 35356.54 
Browse into the actual table you want before selecting import, then you get the CSV option appearing.
0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  Peter (BOUGHTONP)     
35356.56 In reply to 35356.55 
Sure I tried it that way but I'll check when I get home.

0/0
 Reply   Quote More 

 From:  Peter (BOUGHTONP)  
 To:  ANT_THOMAS      
35356.57 In reply to 35356.56 
You have to actually browse the table - not simply view it.

It is more convoluted than it needs to be - should have the CSV option available at all levels, and just allow you to select a database/table from a list if it's not obvious where you're importing to.
0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  Peter (BOUGHTONP)     
35356.58 In reply to 35356.57 

Thank you!

 

All imported now. All the help from all round has been appreciated. No doubt I'll be back for more.

 

Actually, why am I only able to access PHPMyAdmin on the server itself and not on any locally networked PC?


0/0
 Reply   Quote More 

 From:  ANT_THOMAS   
 To:  Peter (BOUGHTONP)     
35356.59 In reply to 35356.57 
Don't worry. Found it.

0/0
 Reply   Quote More 

 From:  Drew (X3N0PH0N)  
 To:  ANT_THOMAS      
35356.60 In reply to 35356.59 

http://www.heidisql.com/download.php

 

So infinitely much better than PHPMyAdmin. By fuck I hate PHPMyAdmin.

 

(have to allow remote connections from wherever you intend to use the app, obviously)


0/0
 Reply   Quote More 

 From:  steve  
 To:  Drew (X3N0PH0N)     
35356.61 In reply to 35356.60 
Does it show text in text-fields when browsing now?

MySQLFront did, and was wonderful, but obviously defunct (and not working with newer versions of MySQL). I haven't upgraded my Heidi for a while now.

0/0
 Reply   Quote More 

 From:  Drew (X3N0PH0N)  
 To:  steve     
35356.62 In reply to 35356.61 
No :((

Actually, it might do now, I have an old version.

0/0
 Reply   Quote More 

Reply to All  
 

1–20  21–40  41–60  61–80  …  141–158

Rate my interest:

Adjust text size : Smaller 10 Larger

Beehive Forum 1.5.2 |  FAQ |  Docs |  Support |  Donate! ©2002 - 2024 Project Beehive Forum

Forum Stats